Forráskód Böngészése

合并代码解决冲突

huangbin 4 éve
szülő
commit
11f476ac66

+ 55 - 0
src/assets/styles/mixin.less

@@ -214,6 +214,9 @@
                     font-size: 14px;
                     border-right: 1px solid @m-black9;
                     border-bottom: 1px solid @m-black9;
+                    white-space: nowrap;
+                    text-overflow: ellipsis;
+                    overflow: hidden;
                 }
             }
         }
@@ -227,6 +230,9 @@
                     border-bottom: 1px solid @m-black9;
                     font-size: 16px;
                     color: @m-white1;
+                    white-space: nowrap;
+                    text-overflow: ellipsis;
+                    overflow: hidden;
                 }
             }
         }
@@ -236,6 +242,55 @@
         }
     }
 }
+// 弹窗表格
+.dialogTable {
+    .ant-table {
+        width: 100%;
+        table {
+            border: 1px solid @m-grey20;
+            border-radius: 0;
+        }
+        .ant-table-thead {
+            tr {
+                box-shadow: 0px 1px 0px 0px #2E3539;
+                th {
+                    line-height: 36px;
+                    background: @m-grey11;
+                    padding-top: 0;
+                    padding-bottom: 0;
+                    color: @m-grey2;
+                    font-size: 16px;
+                    border-right: 1px solid @m-grey20;
+                    border-bottom: 1px solid @m-grey20;
+                    white-space: nowrap;
+                    text-overflow: ellipsis;
+                    overflow: hidden;
+                }
+            }
+        }
+        .ant-table-tbody {
+            tr {
+                td {
+                    height: 36px;
+                    line-height: 36px;
+                    padding: 0 8px;
+                    border-right: 1px solid @m-grey20;
+                    border-bottom: 1px solid @m-grey20;
+                    font-size: 14px;
+                    color: @m-white1;
+                    white-space: nowrap;
+                    text-overflow: ellipsis;
+                    overflow: hidden;
+                    background: @m-grey11;
+                }
+            }
+        }
+        .ant-table-placeholder {
+            border: 0;
+            background: @m-grey11;
+        }
+    }
+}
 .ant-empty-normal {
     color: @m-grey17;
 }

+ 3 - 0
src/assets/styles/variables.less

@@ -25,6 +25,9 @@
 @m-grey16-hover: rgba(@m-grey16, .8);
 @m-grey17: #556772;
 @m-grey18: #1D2327;
+@m-grey19: #162534;
+@m-grey20: #1B2A38;
+@m-grey21: #15202B;
 @m-red0: #ff4d4f;
 @m-red1: #FF2B2B;
 @m-white: #fff;

+ 2 - 2
src/common/methods/table/interface.ts

@@ -1,4 +1,3 @@
-
 interface CustomRender {
     customRender: string;
 }
@@ -17,4 +16,5 @@ export interface TableKey {
     table_pcweb_delivery: string; // 现货合同
     table_pcweb_userinfo: string; // 客户资料
     table_pcweb_warehouse: string; // 仓库信息
-}
+    table_pcweb_purchase: string; // 采购合同
+}

+ 2 - 4
src/common/setup/buttonPermission/interface.ts

@@ -1,12 +1,11 @@
 export interface MenuType {
     custom_info_normal: string; // 客户资料 正常
     custom_info_disabled: string; // 客户资料 停用
-
+    purchase_pending: string;
     spot_contract_unsubmitted: string; // 现货合同 未提交
     spot_contract_checkpending: string; // 现货合同 待审核
     spot_contract_performance: string; // 现货合同 履约中
     spot_contract_finished: string; // 现货合同 已完成
-
 }
 
 export interface BtnType {
@@ -23,5 +22,4 @@ export interface BtnType {
     spot_contract_btn_finish: string; // 现货合同 正常完结
     spot_contract_btn_check: string; // 现货合同 审核
     spot_contract_btn_cancel: string; // 现货合同 撤销
-
-}
+}

+ 2 - 2
src/common/setup/modal/interface.ts

@@ -21,5 +21,5 @@ export interface ModalName {
     spotContractCancel: string; // 现货合同 撤销
 
     addGoods: string; // 新增商品
-
-}
+    purchase_pending_someprice: string; //点价登记
+}

+ 2 - 2
src/services/go/ermcp/exposure-report/index.ts

@@ -6,7 +6,7 @@ import { commonSearch_go } from '@/services/go/index';
 import { QueryExposureDayReportReq } from './interface';
 
 /**
- * 查询敞口日报表
+ * 查询敞口日报表(菜单:报表查询/敞口报表/敞口日报表)
  * @param queryInfo 查询信息
  * @returns 敞口日报表
  */
@@ -14,6 +14,6 @@ export async function QueryExposureDayReport(queryInfo: QueryExposureDayReportRe
     try {
         return commonSearch_go('/Ermcp/QryReportDayExposure', queryInfo);
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询财务日报表发票: ${err.message}`);
     }
 }

+ 66 - 34
src/services/go/ermcp/exposure-report/interface.ts

@@ -1,42 +1,74 @@
 /**
  * 查询敞口日报表请求
  */
-export interface QueryExposureDayReportReq{
-    userid:number;  
-    tradedate:string;   
+export interface QueryExposureDayReportReq {
+    /**用户ID */
+    userid: number;
+    /**交易日(格式:yyyyMMdd) */
+    tradedate: string;
 }
 /**
  * 查询敞口日报表回应
  */
-export interface QueryExposureDayReportRsp{
-    areauserid:number;
-    buyfutureqty:number;
-    buyplanqty:number;
-    buypricedqty:number;
-    diffFutuqty:number;
-    diffSpotqty:number;
-    enumdicname:string;
-    middlegoodscode:string;
-    middlegoodshedgeratio:number;
-    middlegoodsid:number;
-    middlegoodsname:string;
-    needhedgeexposoure:number;
-    needhedgeratio:number;
-    oritotalFutuqty:number;
-    oritotalspotqty:number;
-    oribuyfutureqty:number;
-    oribuyplanqty:number;
-    oribuypricedqty:number;
-    orisellfutureqty:number;
-    orisellplanqty:number;
-    orisellpricedqty:number;
-    reckondate:string;
-    sellfutureqty:number;
-    sellplanqty:number;
-    sellpricedqty:number;
-    totalexposure:number;
-    totalfutureqty:number;
-    totalhedgeratio:number;
-    totalneedhedgeqty:number;
-    totalspotqty:number;   
+export interface QueryExposureDayReportRsp {
+    /**所属机构 */
+    areauserid: number;
+    /**买入期货数量 */
+    buyfutureqty: number;
+    /**采购计划数量 */
+    buyplanqty: number;
+    /**采购合同已定价数量 */
+    buypricedqty: number;
+    /**今日变动量(期货) = (买入 - 买入期初) - (卖出 - 卖出期初) */
+    diffFutuqty: number;
+    /**今日变动量(现货) = 现货数量 - 期初现货数量 */
+    diffSpotqty: number;
+    /**单位名称 */
+    enumdicname: string;
+    /**套保品种代码 */
+    middlegoodscode: string;
+    /**应套保比例 */
+    middlegoodshedgeratio: number;
+    /**套保品种ID */
+    middlegoodsid: number;
+    /**套保品种名称 */
+    middlegoodsname: string;
+    /**应套保敞口 */
+    needhedgeexposoure: number;
+    /**应套保敞口比例 */
+    needhedgeratio: number;
+    /**期初期货数量=期初买入期货数量-期初卖出期货数量 */
+    oritotalFutuqty: number;
+    /**期初现货数量=(期初销售计划数量-期初销售合同已定价数量)-(期初采购计划数量-期初采购合同已定价数量) */
+    oritotalspotqty: number;
+    /**期初买入期货数量 */
+    oribuyfutureqty: number;
+    /**期初采购计划数量 */
+    oribuyplanqty: number;
+    /**期初采购合同已定价数量 */
+    oribuypricedqty: number;
+    /**期初卖出期货数量 */
+    orisellfutureqty: number;
+    /**期初销售计划数量 */
+    orisellplanqty: number;
+    /**期初销售合同已定价数量 */
+    orisellpricedqty: number;
+    /**日照时期(yyyyMMdd) */
+    reckondate: string;
+    /**卖出期货数量 */
+    sellfutureqty: number;
+    /**销售计划数量 */
+    sellplanqty: number;
+    /**销售合同已定价数量 */
+    sellpricedqty: number;
+    /**总敞口 */
+    totalexposure: number;
+    /**期货数量 */
+    totalfutureqty: number;
+    /**敞口比例 */
+    totalhedgeratio: number;
+    /**期货应套保量 */
+    totalneedhedgeqty: number;
+    /**现货数量 */
+    totalspotqty: number;
 }

+ 9 - 9
src/services/go/ermcp/finance-report/index.ts

@@ -7,7 +7,7 @@ import { QueryFinanceDayReportReq } from './interface';
 import { QueryFinanceMonthReportReq } from './interface';
 
 /**
- * 查询财务日报表
+ * 查询财务日报表(菜单:报表查询/财务报表/日报表)
  * @param queryInfo 查询信息
  * @returns 财务日报表数据
  */
@@ -15,33 +15,33 @@ export async function QueryFinanceDayReport(queryInfo: QueryFinanceDayReportReq)
     try {
         return commonSearch_go('/Ermcp/QryReportDayFinance', queryInfo);
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询财务日报表: ${err.message}`);
     }
 }
 
 /**
- * 查询财务发票日报表
+ * 查询财务日报表发票(菜单:报表查询/财务报表/日报表/发票)
  * @param queryInfo 查询信息
  * @returns 财务发票日报表
  */
 export async function QueryFinanceInvoiceDayReport(queryInfo: QueryFinanceDayReportReq): Promise<type.QueryFinanceInvoiceDayReportRsp[]> {
     try {
-        return commonSearch_go('/Ermcp/QryReportDayFinanceFp', queryInfo);
+        return commonSearch_go('/Ermcp3/QryReportDayFinanceFp', queryInfo);
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询财务日报表发票: ${err.message}`);
     }
 }
 
 /**
- * 查询财务付款日报表
+ * 查询财务日报表款项(菜单:报表查询/财务报表/日报表/款项)
  * @param queryInfo 查询信息
  * @returns 财务付款日报表
  */
 export async function QueryFinancePayDayReport(queryInfo: QueryFinanceDayReportReq): Promise<type.QueryFinancePayDayReportRsp[]> {
     try {
-        return commonSearch_go('/Ermcp/QryReportDayFinanceKx', { queryInfo });
+        return commonSearch_go('/Ermcp3/QryReportDayFinanceKx', { queryInfo });
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询财务日报表款项: ${err.message}`);
     }
 }
 
@@ -54,6 +54,6 @@ export async function QueryFinanceMonthReport(queryInfo: QueryFinanceMonthReport
     try {
         return commonSearch_go('/Ermcp/QryReportMonthFinance', { queryInfo });
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询财务月报表: ${err.message}`);
     }
 }

+ 141 - 77
src/services/go/ermcp/finance-report/interface.ts

@@ -1,102 +1,166 @@
- /**
-  * 财务报表查询请求
-  */
- export interface QueryFinanceDayReportReq{
-    userid:number;  
-    tradedate:string;   
+/**
+ * 财务报表查询请求
+ */
+export interface QueryFinanceDayReportReq {
+    /**用户ID */
+    userid: number;
+    /**交易日(格式:yyyyMMdd) */
+    tradedate: string;
 }
 /**
  * 财务日报表查询回应
  */
-export interface QueryFinanceDayReportRsp{
-    areauserid:number;
-    collectinvoiceamount:number;
-    collectinvoicecount:number;
-    collectmoneyamount:number;
-    collectmoneycount:number;
-    payinvoiceamount:number;
-    payinvoicecount:number;
-    paymoneyamount:number;
-    paymoneycount:number;
-    reckondate:string;
-    updatetime:string;
+export interface QueryFinanceDayReportRsp {
+    /**所属机构 */
+    areauserid: number;
+    /**今日开票金额 */
+    collectinvoiceamount: number;
+    /**今日开票笔数 */
+    collectinvoicecount: number;
+    /**今日收款金额 */
+    collectmoneyamount: number;
+    /**今日收款笔数 */
+    collectmoneycount: number;
+    /**今日收票金额 */
+    payinvoiceamount: number;
+    /**今日收票笔数 */
+    payinvoicecount: number;
+    /**今日付款金额 */
+    paymoneyamount: number;
+    /**今日付款笔数 */
+    paymoneycount: number;
+    /**日照时期(yyyyMMdd) */
+    reckondate: string;
+    /**更新时间 */
+    updatetime: string;
 }
 /**
  * 财务发票日报表查询回应
  */
-export interface QueryFinanceInvoiceDayReportRsp{
-    applyid:number;
-    applyname:string;
-    biztype:number;
-    brandname:string;
-    contracttype:number;
-    enumdicname:string;
-    logdatetime:string;
-    logid:string;
-    logtypename:string;
-    logvalue:string;
-    modelname:string;
-    operatelogtype:number;
-    optypename:string;
-    relatedid:string;
-    relatedno:string;
-    tradedate:string;
-    userid:number;
-    wrstandardcode:string;
-    wrstandardid:number;
-    wrstandardname:string;
+export interface QueryFinanceInvoiceDayReportRsp {
+    /**操作人 */
+    applyid: number;
+    /**操作人名称 */
+    applyname: string;
+    /**业务类型 - 1:套保计划 2:现货合同 */
+    biztype: number;
+    /**品牌名称 */
+    brandname: string;
+    /**现货合同类型 - 1:采购 -1:销售 */
+    contracttype: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**单位名称 */
+    enumdicname: string;
+    /**流水日期(时间) */
+    logdatetime: string;
+    /**流水ID(604+Unix秒时间戳(10位)+xxxxxx) */
+    logid: string;
+    /**合同类型(名称) */
+    logtypename: string;
+    /**数值 */
+    logvalue: string;
+    /**操作流水类型  */
+    operatelogtype: number;
+    /**流水类型名称 */
+    optypename: string;
+    /**现货合同ID\套保计划 */
+    relatedid: string;
+    /**合同编号 */
+    relatedno: string;
+    /**交易日(yyyyMMdd) */
+    tradedate: string;
+    /**机构ID */
+    userid: number;
 }
 /**
  * 财务付款日报表查询回应
  */
-export interface QueryFinancePayDayReportRsp{
-    applyid:number;
-    applyname:string;
-    biztype:number;
-    brandname:string;
-    contracttype:number;
-    enumdicname:string;
-    logdatetime:string;
-    logid:string;
-    logtypename:string;
-    logvalue:string;
-    modelname:string;
-    operatelogtype:number;
-    optypename:string;
-    relatedid:string;
-    relatedno:string;
-    tradedate:string;
-    userid:number;
-    wrstandardcode:string;
-    wrstandardid:number;
-    wrstandardname:string;
+export interface QueryFinancePayDayReportRsp {
+    /**操作人 */
+    applyid: number;
+    /**操作人名称 */
+    applyname: string;
+    /**业务类型 - 1:套保计划 2:现货合同 */
+    biztype: number;
+    /**品牌名称 */
+    brandname: string;
+    /**现货合同类型 - 1:采购 -1:销售 */
+    contracttype: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**单位名称 */
+    enumdicname: string;
+    /**流水日期(时间) */
+    logdatetime: string;
+    /**流水ID(604+Unix秒时间戳(10位)+xxxxxx) */
+    logid: string;
+    /**合同类型(名称) */
+    logtypename: string;
+    /**数值 */
+    logvalue: string;
+    /**操作流水类型  */
+    operatelogtype: number;
+    /**流水类型名称 */
+    optypename: string;
+    /**现货合同ID\套保计划 */
+    relatedid: string;
+    /**合同编号 */
+    relatedno: string;
+    /**交易日(yyyyMMdd) */
+    tradedate: string;
+    /**机构ID */
+    userid: number;
 }
 
 
 /**
   * 财务月报表查询请求
   */
- export interface QueryFinanceMonthReportReq{
-    userid:number;  
-    cycletime:string;   
+export interface QueryFinanceMonthReportReq {
+    /**用户ID */
+    userid: number;
+    /**周期时间:月(格式:yyyyMM) */
+    cycletime: string;
 }
 
 /**
  * 财务月报表查询回应
  */
- export interface QueryFinanceMonthReportRsp{
-    areauserid:number;
-    collectinvoiceamount:number;
-    collectinvoicecount:number;
-    collectmoneyamount:number;
-    collectmoneycount:number;
-    cycletime:string;
-    cycletype:number;
-    dayfr:QueryFinanceDayReportRsp[];
-    payinvoiceamount:number;
-    payinvoicecount:number;
-    paymoneyamount:number;
-    paymoneycount:number;
-    updatetime:string;
+export interface QueryFinanceMonthReportRsp {
+    /**所属机构【原值】 */
+    areauserid: number;
+    /**今日开票金额【汇总】 */
+    collectinvoiceamount: number;
+    /**今日开票笔数【汇总】 */
+    collectinvoicecount: number;
+    /**今日收款金额【汇总】 */
+    collectmoneyamount: number;
+    /**今日收款笔数【汇总】 */
+    collectmoneycount: number;
+    /**周期时间 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】 */
+    cycletime: string;
+    /**周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】 */
+    cycletype: number;
+    /**日报表明细 */
+    dayfr: QueryFinanceDayReportRsp[];
+    /**今日收票金额【汇总】 */
+    payinvoiceamount: number;
+    /**今日收票笔数【汇总】 */
+    payinvoicecount: number;
+    /**今日付款金额【汇总】 */
+    paymoneyamount: number;
+    /**今日付款笔数【汇总】 */
+    paymoneycount: number;
+    /**更新时间 */
+    updatetime: string;
 }
 

+ 2 - 2
src/services/go/ermcp/inventory-report/index.ts

@@ -13,7 +13,7 @@ export async function QueryAreaStockReport(queryInfo: QueryAreaStockReportReq):
     try {
         return commonSearch_go('/Ermcp3/QueryAreaStockReport', queryInfo);
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询库存报表: ${err.message}`);
     }
 }
 
@@ -26,6 +26,6 @@ export async function QueryAreaStockReportDetail(queryInfo: QueryAreaStockReport
     try {
         return commonSearch_go('/Ermcp3/QueryAreaStockReportDetail', queryInfo);
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询库存明细报表: ${err.message}`);
     }
 }

+ 165 - 88
src/services/go/ermcp/inventory-report/interface.ts

@@ -2,106 +2,183 @@
 /**
  * 查询库存报表请求
  */
-export interface QueryAreaStockReportReq{
-    userid:number;
-    querytype:number;
-    querydate:string;
-    deliverygoodsid?:number;
-    wrstandardid?:number;
-    spotgoodsbrandid?:number;
-    warehouseinfoid?:number;
-
+export interface QueryAreaStockReportReq {
+    /**用户ID */
+    userid: number;
+    /**查询类型 1-日报表 2-月报表 */
+    querytype: number;
+    /**查询日期(格式 日报表YYYYMMDD, 月报表YYYYMM) */
+    querydate: string;
+    /**现货商品ID */
+    deliverygoodsid?: number;
+    /**品类ID */
+    wrstandardid?: number;
+    /**品牌ID */
+    spotgoodsbrandid?: number;
+    /**仓库ID */
+    warehouseinfoid?: number;
 }
 
 /**
  * 查询库存报表回应
  */
-export interface QueryAreaStockReportRsp{
-brandname:string;
-curstock:number;
-deliverygoodscode:string;
-deliverygoodsid:number;
-deliverygoodsname:string;
-enumdicname:string;
-goodsunitid:number;
-oristock:number;
-spotgoodsbrandid:number;
-todaybuyinqty:number;
-todayproduceinqty:number;
-todayproduceoutqty:number;
-todayselloutqty:number;
-unitid:number;
-updatetime:string;
-userid:number;
-username:string;
-warehousecode:string;
-warehouseinfoid:string;
-warehousename:string;
-warehousetype:number;
-wrstandardcode:string;
-wrstandardid:number;
-wrstandardname:string;
+export interface QueryAreaStockReportRsp {
+    /**品牌名称 */
+    brandname: string;
+    /**期末库存量 */
+    curstock: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**单位名称 */
+    enumdicname: string;
+    /**现货单位id */
+    goodsunitid: number;
+    /**期初库存量 */
+    oristock: number;
+    /**现货品牌ID */
+    spotgoodsbrandid: number;
+    /**今日采购入库量 */
+    todaybuyinqty: number;
+    /**今日生产入库量 */
+    todayproduceinqty: number;
+    /**今日生产出库量 */
+    todayproduceoutqty: number;
+    /**今日销售出库量 */
+    todayselloutqty: number;
+    /**品类单位id */
+    unitid: number;
+    /**更新时间 */
+    updatetime: string;
+    /**机构ID */
+    userid: number;
+    /**机构名称 */
+    username: string;
+    /**仓库代码 */
+    warehousecode: string;
+    /**仓库ID */
+    warehouseinfoid: string;
+    /**仓库名称 */
+    warehousename: string;
+    /**仓库类型 - 1 厂库 2 自有库 3 合作库 */
+    warehousetype: number;
+    /**品类代码 */
+    wrstandardcode: string;
+    /**品类ID */
+    wrstandardid: number;
+    /**品类名称 */
+    wrstandardname: string;
 }
 
 /**
  * 查询库存报表明细请求
  */
-export interface QueryAreaStockReportDetailReq{
-    userid:number;
-    querytype:number;
-    detailtype:number;
-    querydate:string;
-    deliverygoodsid?:number;
-    wrstandard?:number;
-    spotgoodsbrandid?:number;
-    warehouseinfoid?:number;
+export interface QueryAreaStockReportDetailReq {
+    /**用户ID */
+    userid: number;
+    /**查询类型 1-日报表明细 2-月报表明细 */
+    querytype: number;
+    /**明细类型 1:入库明细(采购入库+生产入库) 2:出库明细(销售出库+生产出库) */
+    detailtype: number;
+    /**查询日期(格式 日报表YYYYMMDD, 月报表YYYYMM) */
+    querydate: string;
+    /**现货商品ID */
+    deliverygoodsid?: number;
+    /**品类ID */
+    wrstandard?: number;
+    /**品牌ID */
+    spotgoodsbrandid?: number;
+    /**仓库ID */
+    warehouseinfoid?: number;
 }
 
 /**
  * 查询库存报表明细回应
  */
-export interface QueryAreaStockReportDetailRsp{
-    applyid:number;
-    applyname:string;
-    applyremark:string;
-    applysrc:number;
-    applystatus:number;
-    applytime:string;
-    auditid:number;
-    auditname:string;
-    auditremark:string;
-    auditsrc:number;
-    audittime:string;
-    audittradedate:string;  
-    brandname:string;
-    buynickname:string;
-    buyuserid:number;
-    buyusername:string;
-    contractno:string;
-    contractqty:number;
-    contracttype:number;
-    deliverygoodscode:string;
-    deliverygoodsid:number;
-    deliverygoodsname:string;
-    enumdicname:string;
-    inoutapplyid:string;
-    inouttype:number;
-    pricetype:number;
-    qty:number;
-    sellnickname:string;
-    selluserid:number;
-    sellusername:string;
-    spotcontractid:string;
-    spotgoodsbrandid:number;
-    unitid:number;
-    //updatetime:string;
-    userid:number;
-    //username:string;
-    warehousecode:string;
-    warehouseinfoid:string;
-    warehousename:string;
-    warehousetype:number;
-    wrstandardcode:string;
-    wrstandardid:number;
-    wrstandardname:string;
-  }
+export interface QueryAreaStockReportDetailRsp {
+    /**申请人 */
+    applyid: number;
+    /**申请人名称 */
+    applyname: string;
+    /**申请备注 */
+    applyremark: string;
+    /**申请来源 - 1:管理端 2:终端 */
+    applysrc: number;
+    /**申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回 */
+    applystatus: number;
+    /**申请时间 */
+    applytime: string;
+    /**审核人 */
+    auditid: number;
+    /**审核人名称 */
+    auditname: string;
+    /**审核备注 */
+    auditremark: string;
+    /**审核来源 - 1:管理端 2:终端 */
+    auditsrc: number;
+    /**审核时间 */
+    audittime: string;
+    /**审核交易日(yyyyMMdd) */
+    audittradedate: string;
+    /**品牌名称 */
+    brandname: string;
+    /**采购方昵称 */
+    buynickname: string;
+    /**采购方userid */
+    buyuserid: number;
+    /**采购方名称 */
+    buyusername: string;
+    /**合同编号 */
+    contractno: string;
+    /**合同量 */
+    contractqty: number;
+    /**现货合同类型 - 1:采购 -1:销售 */
+    contracttype: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**现货商品单位名称 */
+    enumdicname: string;
+    /**申请ID(607+Unix秒时间戳(10位)+xxxxxx) */
+    inoutapplyid: string;
+    /**出入库类型 - 1:采购入库 2:销售出库 3:生产入库 4:生产出库 */
+    inouttype: number;
+    /**定价类型 - 1:一口价 2:点价 3:暂定价 */
+    pricetype: number;
+    /**数量 */
+    qty: number;
+    /**销售方昵称 */
+    sellnickname: string;
+    /**销售方userid */
+    selluserid: number;
+    /**销售方名称 */
+    sellusername: string;
+    /**关联现货合同ID */
+    spotcontractid: string;
+    /**现货品牌ID */
+    spotgoodsbrandid: number;
+    /**单位id */
+    unitid: number;
+    /**机构ID */
+    userid: number;
+    /**仓库代码 */
+    warehousecode: string;
+    /**现货仓库ID */
+    warehouseinfoid: string;
+    /**仓库名称 */
+    warehousename: string;
+    /**仓库类型 - 1 厂库 2 自有库 3 合作库 */
+    warehousetype: number;
+    /**品类代码 */
+    wrstandardcode: string;
+    /**品类ID */
+    wrstandardid: number;
+    /**品类名称 */
+    wrstandardname: string;
+}

+ 22 - 8
src/services/go/ermcp/spot-report/index.ts

@@ -6,6 +6,20 @@ import { QuerySpotDayReportReq } from './interface';
 import { QuerySpotDayReportDetailReq } from './interface';
 import { QuerySpotMonthReportReq } from './interface';
 import { QuerySpotMonthReportDetailReq } from './interface';
+import { QuerySpotPLReportReq } from './interface';
+/**
+ * 查询现货损益报表
+ * @param queryInfo 查询条件
+ * @returns 现货损益报表
+ */
+export async function QuerySpotPLReport(queryInfo: QuerySpotPLReportReq): Promise<type.QuerySpotPLReportRsp[]> {
+    try {
+        return commonSearch_go('/Ermcp3/QryReportAreaSpotPL', queryInfo);
+    } catch (err) {
+        throw new Error(`查询现货损益报表: ${err.message}`);
+    }
+}
+
 /**
  * 查询现货报表
  * @param queryInfo 查询信息
@@ -13,9 +27,9 @@ import { QuerySpotMonthReportDetailReq } from './interface';
  */
 export async function QuerySpotDayReport(queryInfo: QuerySpotDayReportReq): Promise<type.QuerySpotDayReportRsp[]> {
     try {
-        return commonSearch_go('/Ermcp/QryReportDaySpot', queryInfo);
+        return commonSearch_go('/Ermcp3/QryReportDaySpot', queryInfo);
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询现货报表: ${err.message}`);
     }
 }
 
@@ -26,9 +40,9 @@ export async function QuerySpotDayReport(queryInfo: QuerySpotDayReportReq): Prom
  */
 export async function QuerySpotDayReportDetail(queryInfo: QuerySpotDayReportDetailReq): Promise<type.QuerySpotDayReportDetailRsp[]> {
     try {
-        return commonSearch_go('/Ermcp/QryReportDaySpotDetail', queryInfo);
+        return commonSearch_go('/Ermcp3/QryReportDaySpotDetail', queryInfo);
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询现货明细报表: ${err.message}`);
     }
 }
 
@@ -39,9 +53,9 @@ export async function QuerySpotDayReportDetail(queryInfo: QuerySpotDayReportDeta
  */
 export async function QuerySpotMonthReport(queryInfo: QuerySpotMonthReportReq): Promise<type.QuerySpotMonthReportRsp[]> {
     try {
-        return commonSearch_go('/Ermcp/QryReportMonthSpot', { queryInfo });
+        return commonSearch_go('/Ermcp3/QryReportMonthSpot', { queryInfo });
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询现货月报表: ${err.message}`);
     }
 }
 
@@ -52,8 +66,8 @@ export async function QuerySpotMonthReport(queryInfo: QuerySpotMonthReportReq):
  */
 export async function QuerySpotMonthReportDetail(queryInfo: QuerySpotMonthReportDetailReq): Promise<type.QuerySpotMonthReportDetailRsp[]> {
     try {
-        return commonSearch_go('/Ermcp/QryReportMonthSpotDetail', { queryInfo });
+        return commonSearch_go('/Ermcp3/QryReportMonthSpotDetail', { queryInfo });
     } catch (err) {
-        throw new Error(err.message);
+        throw new Error(`查询现货月报表明细: ${err.message}`);
     }
 }

+ 251 - 82
src/services/go/ermcp/spot-report/interface.ts

@@ -2,115 +2,284 @@
 /**
  * 查询现货报表请求
  */
- export interface QuerySpotDayReportReq{
-    userid:number;    
-    tradedate:string;    
+export interface QuerySpotDayReportReq {
+    /**用户ID */
+    userid: number;
+    /**交易日(格式:yyyyMMdd) */
+    tradedate: string;
 }
 
 /**
- * 查询现货报表回应
+ * 查询现货日报表(菜单:报表查询/现货报表/现货日报表)
  */
-export interface QuerySpotDayReportRsp{
-areauserid:number;
-buyinqty:number;
-enumdicname:string;
-reckondate:string;
-selloutqty:number;
-todaybuyreckonqty:number;
-todaysellreckonqty:number;
-totalbuypricedqty:number;
-totalsellpricedqty:number;
-wrstandardcode:string;
-wrstandardid:number;
-wrstandardname:string;
+export interface QuerySpotDayReportRsp {
+    /**所属机构 */
+    areauserid: number;
+    /**采购入库量 */
+    buyinqty: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**现货商品单位名称 */
+    enumdicname: string;
+    /**日照时期(yyyyMMdd) */
+    reckondate: string;
+    /**销售出库量 */
+    selloutqty: number;
+    /**采购确定量 */
+    todaybuyreckonqty: number;
+    /**销售确定量 */
+    todaysellreckonqty: number;
+    /**采购定价量 = 期末 - 期初 */
+    totalbuypricedqty: number;
+    /**销售定价量 = 期末 - 期初 */
+    totalsellpricedqty: number;
 }
 
 /**
- * 查询现货报表明细请求
+ * 查询现货日报表详情(菜单:报表查询/现货报表/现货日报表详情)
  */
- export interface QuerySpotDayReportDetailReq{
-    userid:number;    
-    wrstandardid:number;
-    tradedate:string;    
+export interface QuerySpotDayReportDetailReq {
+    /**用户ID */
+    userid: number;
+    /**现货商品id */
+    deliverygoodsid: number;
+    /**交易日(格式:yyyyMMdd) */
+    tradedate: string;
 }
 
 /**
  * 查询现货报表明细回应
  */
-export interface QuerySpotDayReportDetailRsp{
-        applyid:number;
-        applyname:string;
-        biztype:number;
-        brandname:string;
-        contracttype:number;
-        enumdicname:string;
-        logdatetime:string;
-        logid:number;
-        logtypename:string;
-        logvalue:string;
-        modelname:string;
-        operatelogtype:number;
-        optypename:string;
-        relatedid:number;
-        relatedno:string;
-        tradedate:string;
-        userid:number;
-        wrstandardcode:string;
-        wrstandardid:number;
-        wrstandardname:string;
+export interface QuerySpotDayReportDetailRsp {
+    /**操作人 */
+    applyid: number;
+    /**操作人名称 */
+    applyname: string;
+    /**业务类型 - 1:套保计划 2:现货合同 */
+    biztype: number;
+    /**品牌名称 */
+    brandname: string;
+    /**现货合同类型 - 1:采购 -1:销售 */
+    contracttype: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**单位名称 */
+    enumdicname: string;
+    /**流水日期(时间) */
+    logdatetime: string;
+    /**流水ID(604+Unix秒时间戳(10位)+xxxxxx) */
+    logid: number;
+    /**合同类型(名称) */
+    logtypename: string;
+    /**数值 */
+    logvalue: string;
+
+    /**操作流水类型 */
+    operatelogtype: number;
+    /**流水类型名称 */
+    optypename: string;
+    /**现货合同ID\套保计划 */
+    relatedid: number;
+    /**合同编号 */
+    relatedno: string;
+    /**交易日(yyyyMMdd) */
+    tradedate: string;
+    /**机构ID */
+    userid: number;
 }
 
 /**
- * 查询现货月报表请求
+ * 查询现货月报表(菜单:报表查询/现货报表/现货月报表)
  */
-export interface QuerySpotMonthReportReq{
-    userid:number;    
-    cycletime:string;    
+export interface QuerySpotMonthReportReq {
+    /**用户ID */
+    userid: number;
+    /**周期时间:月(格式:yyyyMM) */
+    cycletime: string;
 }
 
 /**
  * 查询现货月报表回应
  */
- export interface QuerySpotMonthReportRsp{
-    areauserid:number;
-    buyinqty:number;
-    cycletime:string;
-    cycletype:number;
-    enumdicname:string;    
-    selloutqty:number;
-    todaybuyreckonqty:number;
-    todaysellreckonqty:number;
-    totalbuypricedqty:number;
-    totalsellpricedqty:number;
-    wrstandardcode:string;
-    wrstandardid:number;
-    wrstandardname:string;
-    }
+export interface QuerySpotMonthReportRsp {
+    /**所属机构id */
+    areauserid: number;
+    /**采购入库量 */
+    buyinqty: number;
+    /**周期时间 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(0)【原值】 */
+    cycletime: string;
+    /**周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】 */
+    cycletype: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**现货商品单位名称 */
+    enumdicname: string;
+    /**销售出库量 */
+    selloutqty: number;
+    /**采购确定量 */
+    todaybuyreckonqty: number;
+    /**销售确定量 */
+    todaysellreckonqty: number;
+    /**采购定价量 = 期末 - 期初 */
+    totalbuypricedqty: number;
+    /**销售定价量 = 期末 - 期初 */
+    totalsellpricedqty: number;
+}
 
 
-    /**
- * 查询现货月报表明细请求
- */
- export interface QuerySpotMonthReportDetailReq{
-    userid:number;    
-    wrstandardid:number;
-    cycletime:string;    
+/**
+* 查询现货月报表详情(菜单:报表查询/现货月报表/现货月报表详情)
+*/
+export interface QuerySpotMonthReportDetailReq {
+    /**用户ID */
+    userid: number;
+    /**现货商品id */
+    deliverygoodsid: number;
+    /**周期时间:月(格式:yyyyMM) */
+    cycletime: string;
 }
 
 /**
  * 查询现货月报表明细回应
  */
-export interface QuerySpotMonthReportDetailRsp{
-    areauserid:number;
-    buyinqty:number;   
-    enumdicname:string;    
-    reckondate:string;
-    selloutqty:number;
-    todaybuyreckonqty:number;
-    todaysellreckonqty:number;
-    totalbuypricedqty:number;
-    totalsellpricedqty:number;
-    wrstandardcode:string;
-    wrstandardid:number;
-    wrstandardname:string;
+export interface QuerySpotMonthReportDetailRsp {
+    /**所属机构 */
+    areauserid: number;
+    /**采购入库量 */
+    buyinqty: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**现货商品单位名称 */
+    enumdicname: string;
+    /**日照时期(yyyyMMdd) */
+    reckondate: string;
+    /**销售出库量 */
+    selloutqty: number;
+    /**采购确定量 */
+    todaybuyreckonqty: number;
+    /**销售确定量 */
+    todaysellreckonqty: number;
+    /**采购定价量 = 期末 - 期初 */
+    totalbuypricedqty: number;
+    /**销售定价量 = 期末 - 期初 */
+    totalsellpricedqty: number;
+
+}
+
+/**
+ * 查询现货损益报表(现货损益报表)
+ */
+export interface QuerySpotPLReportReq {
+    /**用户ID */
+    userid: number;
+    /**查询类型 1-日报表 2-月报表 */
+    querytype: number;
+    /**查询日期(格式 日报表YYYYMMDD, 月报表YYYYMM) */
+    querydate: string;
+    /**现货商品ID */
+    deliverygoodsid?: number;
+    /**品牌ID */
+    spotgoodsbrandid?: number;
+    /**品类ID */
+    wrstandardid?: number;
+}
+
+/**
+ * 现货损益报表回应
+ */
+export interface QuerySpotPLReportRsp {
+    /**实际损益 */
+    actualpl: number;
+    /**所属机构 */
+    areauserid: number;
+    /**品牌名称 */
+    brandname: string;
+    /**期末额 */
+    curamount: number;
+    /**期末均价 */
+    curaverageprice: number;
+    /**期末采购总额(采购额) */
+    curbuyamount: number;
+    /**期末采购总量 */
+    curbuyqty: number;
+    /**参考市值 */
+    curmarketvalue: number;
+    /**期末量 */
+    curqty: number;
+    /**期末销售总额(销售额) */
+    cursellamount: number;
+    /**期末销售总量 */
+    cursellqty: number;
+    /**参考市价 */
+    curspotprice: number;
+    /**现货品种代码 */
+    deliverygoodscode: string;
+    /**现货品种id */
+    deliverygoodsid: number;
+    /**现货品种名称 */
+    deliverygoodsname: string;
+    /**现货商品单位名称 */
+    enumdicname: string;
+    /**浮动损益 */
+    floatpl: number;
+    /**品类单位名称 */
+    gbenumdicname: string;
+    /**现货单位id */
+    gbunitid: number;
+    /**品类名称 */
+    modelname: string;
+    /**期初额 */
+    oriamount: number;
+    /**期初均价 */
+    oriaverageprice: number;
+    /**期初采购总额 */
+    oribuyamount: number;
+    /**期初采购总量 */
+    oribuyqty: number;
+    /**期初量 */
+    oriqty: number;
+    /**期初销售总额 */
+    orisellamount: number;
+    /**期初销售总量 */
+    orisellqty: number;
+    /**现货品牌ID */
+    spotgoodsbrandid: number;
+    /**今日采购额 */
+    todaybuyamount: number;
+    /**今日采购均价(采购均价) */
+    todaybuyaverageprice: number;
+    /**今日采购量(采购增量) */
+    todaybuyqty: number;
+    /**今日销售额 */
+    todaysellamount: number;
+    /**今日销售均价(销售均价) */
+    todaysellaverageprice: number;
+    /**今日销售量(销售增量) */
+    todaysellqty: number;
+    /**品类单位id */
+    unitid: number;
+    /**更新时间 */
+    updatetime: string;
+    /**品类代码 */
+    wrstandardcode: string;
+    /**品类ID */
+    wrstandardid: number;
+    /**品类名称 */
+    wrstandardname: string;
 }

+ 11 - 67
src/views/business/purchase/list/pending/index.vue

@@ -1,78 +1,22 @@
 <template>
-    <!-- 采购: 现货头寸-->
-    <div class="spot-contract-peddding">
-        采购: 现货头寸
+    <!-- 采购: 待点价-->
+    <div class="purchase-peddding" :loading="loading">
+        <!-- <filterCustomTable @search="search">
+            <a-button class="operBtn" v-if="hasPermission('custom_info_btn_add')" @click="addAction">新增</a-button>
+        </filterCustomTable> -->
+        <contextMenu :contextMenuList="contextMenuList" :tableList="customList">
+            <a-table :columns="columns" class="topTable" :pagination="false" rowKey="key" :data-source="customList"></a-table>
+        </contextMenu>
     </div>
 </template>
 
 <script lang="ts">
     import { defineComponent, ref } from 'vue';
-    import { QueryCustomInfo } from '@/services/go/ermcp/customInfo/index';
-    import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
-    import { message } from 'ant-design-vue';
-    import { initData } from '@/common/methods';
-
-    // 查询客户资料列表
-    function getCustomList() {
-        // const filteredInfo = ref();
-        // const sortedInfo = ref();
-        // const columns = computed(() => {
-        //     const filtered = filteredInfo.value || {};
-        //     const sorted = sortedInfo.value || {};
-        //     return [
-        //         {
-        //             title: '序号',
-        //             dataIndex: 'index',
-        //             key: 'index',
-        //             align: 'center',
-        //             width: 50,
-        //             customRender: (param: any) => `${param.index + 1}`,
-        //         },
-        //         {
-        //             title: 'Age',
-        //             dataIndex: 'age',
-        //             key: 'age',
-        //             sorter: (a: DataItem, b: DataItem) => a.age - b.age,
-        //             sortOrder: sorted.columnKey === 'age' && sorted.order,
-        //         },
-        //         {
-        //             title: 'Address',
-        //             dataIndex: 'address',
-        //             key: 'address',
-        //             filters: [
-        //                 { text: 'London', value: 'London' },
-        //                 { text: 'New York', value: 'New York' },
-        //             ],
-        //             filteredValue: filtered.address || null,
-        //             onFilter: (value: string, record: DataItem) => record.address.includes(value),
-        //             sorter: (a: DataItem, b: DataItem) => a.address.length - b.address.length,
-        //             sortOrder: sorted.columnKey === 'address' && sorted.order,
-        //             ellipsis: true,
-        //         },
-        //     ];
-        // });
-        const customList = ref<QueryCustomInfoType[]>([]);
-        function actionQuery() {
-            QueryCustomInfo(4)
-                .then((res) => {
-                    console.log('L', res);
-                })
-                .catch((err) => message.error(err));
-        }
-
-        return { customList, actionQuery };
-    }
-
+    import { handlePurchase, btnAndComp } from '../../setup';
     export default defineComponent({
-        name: 'spot-contract-peddding',
-        components: {},
+        name: 'purchase-peddding',
         setup() {
-            const { customList, actionQuery } = getCustomList();
-            initData(() => {
-                actionQuery();
-                // 加载数据在这里
-            });
-            return { customList };
+            return { ...handlePurchase(), ...btnAndComp() };
         },
     });
 </script>

+ 80 - 0
src/views/business/purchase/setup.ts

@@ -0,0 +1,80 @@
+import { QueryPurchase } from '@/services/go/ermcp/purchase';
+import { Ermcp3SellBuyContract, SellBuyContractReq } from '@/services/go/ermcp/purchase/interface';
+import { ref, Ref } from '@vue/reactivity';
+import APP from '@/services';
+import { getUserId } from '@/services/bus/account';
+import { initData } from '@/common/methods';
+import { ColumnType, getTableHead } from '@/common/methods/table';
+import { detailButton, permissionButton, handlePermission } from '@/common/setup/buttonPermission/index';
+import { MenuItem } from '@/common/components/contextMenu/interface';
+import { openModal } from '@/common/setup/modal/index';
+import { watchEffect } from 'vue';
+// 采购数据获取和表头数据整理
+export function handlePurchase() {
+    // ========================loading========================
+    const loading = ref<boolean>(false);
+    // ========================获取列表数据========================
+    let customList = ref<Ermcp3SellBuyContract[] | []>([]);
+    function queryPurchase() {
+        const AreaUserID = APP.get('userAccount').memberuserid; // 所属机构id
+        const req: SellBuyContractReq = {
+            areauserid: AreaUserID, //  所属机构ID
+            contracttype: 1, // 合同类型 1-采购, -1-销售
+            querytype: 1, // 查询类型 1-全部 2-待点价 3-履约结算 4-已完成
+            userid: getUserId(), // 用户ID
+        };
+        QueryPurchase(req).then((res) => {
+            customList.value = res;
+        });
+    }
+
+    // ========================获取表头========================
+    const columns = ref<ColumnType[]>([]);
+    function getColumns() {
+        const list = getTableHead('table_pcweb_purchase');
+        columns.value.length = 0;
+        list.forEach((e, i) => {
+            const { columnfield, columntitle, aligntype } = e;
+            const item: ColumnType = {
+                key: String(i),
+                dataIndex: columnfield,
+                title: columntitle,
+                align: aligntype === 1 ? 'center' : aligntype === 2 ? 'left' : 'right',
+                slots: { customRender: columnfield },
+            };
+            columns.value.push(item);
+        });
+    }
+
+    // ========================数据初始化========================
+    initData((): void => {
+        queryPurchase();
+        getColumns();
+    });
+    return { loading, customList, columns };
+}
+
+// 按钮权限与功能组件
+export function btnAndComp() {
+    // 传入父及的code 得到当前1234级的整个权限
+    const { hasPermission } = handlePermission('purchase_pending');
+    // 配置右键菜单列表
+    const contextMenuList = ref<MenuItem[]>([]);
+    // 打开新增页的弹窗 返回打开弹窗的方法
+    const { openAction: addAction } = openModal('addCustomInfo');
+    // 创建详情页并写入右键菜单列表(每个页面都有,写死)
+    detailButton('customDetail', contextMenuList);
+    // 通过code跟弹窗建立联系 返回写入右键的方法
+    const { action: deleteAction } = permissionButton('purchase_pending_someprice', '点价登记', contextMenuList);
+
+    const stop = watchEffect(() => {
+        // 判断是否有权限 有就写入
+        hasPermission('custom_info_btn_delete') && deleteAction();
+    });
+    return {
+        stop,
+        addAction,
+        hasPermission,
+        contextMenuList,
+    };
+}

+ 24 - 24
src/views/information/custom/compoments/add/index.vue

@@ -215,30 +215,30 @@ export default defineComponent({
 
 <style lang="less">
 .add-custom {
-}
-.upload {
-    display: inline-flex;
-    .ant-btn.uploadBtn {
-        width: 60px;
-        height: 30px;
-        background: @m-blue0;
-        border: 0;
-        padding: 0;
-        text-align: center;
-        font-size: 14px;
-        color: @m-white0;
-        .rounded-corners(3px);
-        &:hover {
-            background: rgba(@m-blue0, 0);
-            color: rgba(@m-white0, 0.8);
-        }
-    }
-    .look {
-        color: @m-blue0;
-        font-size: 14px;
-        margin-left: 10px;
-        cursor: pointer;
-    }
+  .upload {
+      display: inline-flex;
+      .ant-btn.uploadBtn {
+          width: 60px;
+          height: 30px;
+          background: @m-blue0;
+          border: 0;
+          padding: 0;
+          text-align: center;
+          font-size: 14px;
+          color: @m-white0;
+          .rounded-corners(3px);
+          &:hover {
+              background: rgba(@m-blue0, 0);
+              color: rgba(@m-white0, 0.8);
+          }
+      }
+      .look {
+          color: @m-blue0;
+          font-size: 14px;
+          margin-left: 10px;
+          cursor: pointer;
+      }
+  }
 }
 </style
 >;

+ 13 - 14
src/views/information/custom/compoments/detail/index.vue

@@ -135,18 +135,17 @@ export default defineComponent({
 
 <style lang="less">
 .custom-detail {
+    .ant-form.inlineForm {
+        margin-top: 20px;
+    }
+    .white {
+        color: @m-white0;
+    }
+    .blue {
+        color: @m-blue0;
+    }
+    .green {
+        color: @m-green0;
+    }
 }
-.ant-form.inlineForm {
-    margin-top: 20px;
-}
-.white {
-    color: @m-white0;
-}
-.blue {
-    color: @m-blue0;
-}
-.green {
-    color: @m-green0;
-}
-</style
->;
+</style>;

+ 1 - 2
src/views/information/custom/compoments/disable/index.vue

@@ -137,5 +137,4 @@ export default defineComponent({
 <style lang="less">
 .arehouse-disable {
 }
-</style
->;
+</style>

+ 22 - 21
src/views/information/custom/compoments/filterTable/index.vue

@@ -78,32 +78,33 @@ export default defineComponent({
     display: inline-flex;
     padding-top: 9px;
     padding-bottom: 6px;
-}
-.ant-select-single:not(.ant-select-customize-input) {
-    margin-right: 10px;
-    // background: #252D34;
-    // .rounded-corners(3px);
-    .ant-select-selector {
-        height: 30px;
-        padding: 0 8px;
-        background: @m-grey9;
-        border: none;
-        .rounded-corners(3px);
-        color: @m-grey10;
+    .ant-select-single:not(.ant-select-customize-input) {
+        margin-right: 10px;
+        // background: #252D34;
+        // .rounded-corners(3px);
+        .ant-select-selector {
+            height: 30px;
+            padding: 0 8px;
+            background: @m-grey9;
+            border: none;
+            .rounded-corners(3px);
+            color: @m-grey10;
+            .ant-select-arrow {
+                right: 8px;
+                color: @m-grey1;
+            }
+        }
         .ant-select-arrow {
-            right: 8px;
             color: @m-grey1;
         }
+        .ant-select-selection-item {
+            color: @m-white1;
+        }
     }
-    .ant-select-arrow {
-        color: @m-grey1;
-    }
-    .ant-select-selection-item {
-        color: @m-white1;
+    .conditionSelect + .conditionSelect {
+        margin-left: 10px;
     }
-}
-.conditionSelect + .conditionSelect {
-    margin-left: 10px;
+    
 }
 .selectBtn.ant-btn {
     margin-left: 10px;

+ 1 - 2
src/views/information/custom/list/normal-use/index.vue

@@ -76,5 +76,4 @@ export default defineComponent({
 <style lang="less">
 .custom-normal {
 }
-</style
->;
+</style>

+ 373 - 187
src/views/information/goods/components/add/index.vue

@@ -1,185 +1,188 @@
 <template>
   <!-- 新增现货品种 -->
-  <a-modal class="addSpotVariety"
+  <a-modal class="commonModal addSpotVariety"
            title="新增现货品种"
            v-model:visible="visible"
            @cancel="cancel"
-           width="890px">
+           width="850px">
     <template #footer>
       <a-button key="submit"
                 type="primary"
                 :loading="loading"
                 @click="submit">完成</a-button>
     </template>
-    <a-form class="inlineForm"
-            :form="form"
-            @submit="handleSearch">
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="客户类型">
-            <a-select class="typeSelect"
+    <a-form class="inlineForm">
+      <fieldset class="formFieldSet">
+        <legend>基本信息</legend>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item label="现货品种名称">
+              <a-input class="dialogInput"
                       style="width: 200px"
-                      placeholder="请选择客户类型">
-              <a-select-option value="1">
-                客户一
-              </a-select-option>
-              <a-select-option value="2">
-                客户二
-              </a-select-option>
-            </a-select>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="企业名称">
-            <a-input class="dialogInput"
-                     style="width: 200px"
-                     placeholder="请输入企业名称" />
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="企业简称">
-            <a-input class="dialogInput"
-                     style="width: 200px"
-                     placeholder="请输入企业简称" />
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="证件类型">
-            <a-select class="inlineFormSelect"
+                      placeholder="请输入现货品种名称" />
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item label="现货品种代码">
+              <a-input class="dialogInput"
                       style="width: 200px"
-                      placeholder="请选择证件类型">
-              <a-select-option value="1">
-                客户一
-              </a-select-option>
-              <a-select-option value="2">
-                客户二
-              </a-select-option>
-            </a-select>
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="法定代表人">
-            <a-input class="dialogInput"
-                     style="width: 200px"
-                     placeholder="请输入法定代表人" />
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="证件号码">
-            <a-input class="dialogInput"
-                     style="width: 200px"
-                     placeholder="请输入证件号码" />
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="纳税人识别号">
-            <a-input class="dialogInput"
-                     style="width: 200px"
-                     placeholder="请输入纳税人识别号" />
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="营业执照">
-            <div class="upload">
-              <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
-                        :transform-file="transformFile">
-                <a-button class="uploadBtn">上传</a-button>
-              </a-upload>
-              <div class="look">查看附件</div>
-            </div>
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="联系人">
-            <a-input class="dialogInput"
-                     style="width: 200px"
-                     placeholder="请输入联系人" />
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="联系人手机号">
-            <a-input class="dialogInput"
-                     style="width: 200px"
-                     placeholder="请输入联系人手机号" />
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="联系电话">
-            <a-input class="dialogInput"
-                     style="width: 200px"
-                     placeholder="请输入联系电话" />
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item>
-            &nbsp;
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="24">
-          <a-form-item label="通讯地址">
-            <a-select class="inlineFormSelect"
-                      style="width: 205px"
-                      placeholder="请选择省">
-              <a-select-option value="1">
-                客户一
-              </a-select-option>
-              <a-select-option value="2">
-                客户二
-              </a-select-option>
-            </a-select>
-            <a-select class="inlineFormSelect"
-                      style="width: 205px"
-                      placeholder="请选择市">
-              <a-select-option value="1">
-                客户一
-              </a-select-option>
-              <a-select-option value="2">
-                客户二
-              </a-select-option>
-            </a-select>
-            <a-select class="inlineFormSelect"
-                      style="width: 205px"
-                      placeholder="请选择县(区)">
-              <a-select-option value="1">
-                客户一
-              </a-select-option>
-              <a-select-option value="2">
-                客户二
-              </a-select-option>
-            </a-select>
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="24">
-          <a-form-item label="&nbsp;">
-            <a-input class="dialogInput"
-                     style="width: 635px"
-                     placeholder="请输入详细地址" />
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
+                      placeholder="请输入现货品种代码" />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="24">
+            <a-form-item label="单位">
+              <a-select class="inlineFormSelect"
+                        style="width: 200px"
+                        placeholder="请选择单位">
+                <a-select-option value="1">
+                  客户一
+                </a-select-option>
+                <a-select-option value="2">
+                  客户二
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
         <a-col :span="24">
           <a-form-item label="备注">
             <a-input class="dialogInput"
-                     style="width: 635px"
+                     style="width: 562px"
                      placeholder="请输入备注" />
           </a-form-item>
         </a-col>
       </a-row>
+      </fieldset>
+      <fieldset class="formFieldSet">
+        <legend>品类信息</legend>
+        <a-table  class="dialogTable" :columns="columns" :data-source="dataSource" :pagination="false">
+          <template #type>
+            <a-input class="dialogInput" placeholder="请输入品类"></a-input>
+          </template>
+          <template #customType>
+            <span>
+              <span class="red">*</span>
+              品类
+            </span>
+          </template>
+          <template #unit>
+            <a-select class="dialogSelect" placeholder="请选择单位">
+                <a-select-option value="1">
+                    一口价
+                </a-select-option>
+                <a-select-option value="2">
+                    一口价2
+                </a-select-option>
+            </a-select>
+          </template>
+          <template #customUnit>
+            <span>
+              <span class="red">*</span>
+              单位
+            </span>
+          </template>
+          <template #coefficient>
+            <a-input class="dialogInput" placeholder="请输入标仓系数"></a-input>
+          </template>
+          <template #customCoefficient>
+            <span>
+              <span class="red">*</span>
+              标仓系数
+            </span>
+          </template>
+          <template #action>
+            <a-button class="plusBtn">
+              <template #icon>
+                <MinusOutlined />
+              </template>
+            </a-button>
+            <a-button class="minusBtn">
+              <template #icon>
+                <PlusOutlined />
+              </template>
+            </a-button>
+          </template>
+        </a-table>
+      </fieldset>
+      <fieldset class="formFieldSet">
+        <legend>品牌信息</legend>
+        <a-table  class="dialogTable" :columns="columns1" :data-source="dataSource1" :pagination="false">
+          <template #type>
+            <a-input class="dialogInput" placeholder="请输入品牌"></a-input>
+          </template>
+          <template #customType>
+            <span>
+              <span class="red">*</span>
+              品牌
+            </span>
+          </template>
+          <template #action>
+            <a-button class="plusBtn">
+              <template #icon>
+                <MinusOutlined />
+              </template>
+            </a-button>
+            <a-button class="minusBtn">
+              <template #icon>
+                <PlusOutlined />
+              </template>
+            </a-button>
+          </template>
+        </a-table>
+      </fieldset>
+      <fieldset class="formFieldSet">
+        <legend>套保品种信息</legend>
+        <a-table  class="dialogTable" :columns="columns" :data-source="dataSource" :pagination="false">
+          <template #type>
+             <a-select class="dialogSelect" placeholder="请选择套保品种">
+                <a-select-option value="1">
+                    一口价
+                </a-select-option>
+                <a-select-option value="2">
+                    一口价2
+                </a-select-option>
+            </a-select>
+          </template>
+          <template #customType>
+            <span>
+              <span class="red">*</span>
+              套保品种
+            </span>
+          </template>
+          <template #unit>
+           <span class="white">选择套保品种后自动填入</span>
+          </template>
+          <template #customUnit>
+            <span>
+              单位
+            </span>
+          </template>
+          <template #coefficient>
+            <a-input class="dialogInput" placeholder="请输入套保系数"></a-input>
+          </template>
+          <template #customCoefficient>
+            <span>
+              <span class="red">*</span>
+              套保系数
+            </span>
+          </template>
+          <template #action>
+            <a-button class="plusBtn">
+              <template #icon>
+                <MinusOutlined />
+              </template>
+            </a-button>
+            <a-button class="minusBtn">
+              <template #icon>
+                <PlusOutlined />
+              </template>
+            </a-button>
+          </template>
+        </a-table>
+      </fieldset>
     </a-form>
   </a-modal>
 </template>
@@ -188,13 +191,96 @@
 import { defineComponent, ref } from 'vue';
 import { closeModal, openModal } from '@/common/setup/modal/index';
 import { initData } from '@/common/methods/index';
+import { PlusOutlined, MinusOutlined } from '@ant-design/icons-vue';
 
 export default defineComponent({
     name: 'addSpotVariety',
-    components: {},
+    components: {
+      PlusOutlined,
+      MinusOutlined,
+    },
     setup() {
         const { visible, cancel } = closeModal('spot_contract_btn_add');
         const loading = ref<boolean>(false);
+        const columns = [
+          {
+            dataIndex: 'type',
+            key: 'type',
+            slots: { title: 'customType', customRender: 'type' },
+            width: 200,
+            align: 'center'
+          },
+          {
+            dataIndex: 'unit',
+            key: 'unit',
+            slots: { title: 'customUnit', customRender: 'unit' },
+            width: 200,
+            align: 'center'
+          },
+          {
+            dataIndex: 'coefficient',
+            key: 'coefficient',
+            slots: { title: 'customCoefficient', customRender: 'coefficient' },
+            width: 200,
+            align: 'center'
+          },
+          {
+            title: '操作',
+            key: 'action',
+            slots: { customRender: 'action' },
+            align: 'center'
+          },
+        ];
+
+        const dataSource = [
+          {
+            key: '1',
+            type: 'John Brown',
+            age: 32,
+            address: 'New York No. 1 Lake Park',
+            tags: ['nice', 'developer'],
+          },
+          {
+            key: '2',
+            name: 'Jim Green',
+            age: 42,
+            address: 'London No. 1 Lake Park',
+            tags: ['loser'],
+          },
+        ];
+
+        const columns1 = [
+          {
+            dataIndex: 'type',
+            key: 'type',
+            slots: { title: 'customType', customRender: 'type' },
+            width: 598,
+            align: 'center'
+          },
+          {
+            title: '操作',
+            key: 'action',
+            slots: { customRender: 'action' },
+            align: 'center'
+          },
+        ];
+
+        const dataSource1 = [
+          {
+            key: '1',
+            type: 'John Brown',
+            age: 32,
+            address: 'New York No. 1 Lake Park',
+            tags: ['nice', 'developer'],
+          },
+          {
+            key: '2',
+            name: 'Jim Green',
+            age: 42,
+            address: 'London No. 1 Lake Park',
+            tags: ['loser'],
+          },
+        ];
         function submit() {
             loading.value = true;
             setTimeout(() => {
@@ -208,6 +294,10 @@ export default defineComponent({
             cancel,
             submit,
             loading,
+            dataSource,
+            columns,
+            dataSource1,
+            columns1
         };
     },
 });
@@ -215,30 +305,126 @@ export default defineComponent({
 
 <style lang="less">
 .addSpotVariety {
-}
-.upload {
-    display: inline-flex;
-    .ant-btn.uploadBtn {
-        width: 60px;
-        height: 30px;
-        background: @m-blue0;
-        border: 0;
-        padding: 0;
-        text-align: center;
-        font-size: 14px;
-        color: @m-white0;
-        .rounded-corners(3px);
-        &:hover {
-            background: rgba(@m-blue0, 0);
-            color: rgba(@m-white0, 0.8);
-        }
+  width: 100%;
+  height: 100%;
+  padding: 30px;
+  .formFieldSet {
+    border: 1px solid @m-grey19;
+    padding: 0 20px 20px;
+  }
+  .formFieldSet+.formFieldSet {
+    margin-top: 35px;
+  }
+  .ant-form {
+    legend {
+      width: auto;
+      margin-left: 20px;
+      font-size: 16px;
+      color: @m-white0;
+      border-bottom: 0;
+      padding: 0 10px;
     }
-    .look {
-        color: @m-blue0;
-        font-size: 14px;
-        margin-left: 10px;
-        cursor: pointer;
+  }
+  .ant-form.inlineForm .ant-row.ant-form-item .ant-form-item-label {
+    width: 120px !important;
+  }
+  .upload {
+      display: inline-flex;
+      .ant-btn.uploadBtn {
+          width: 60px;
+          height: 30px;
+          background: @m-blue0;
+          border: 0;
+          padding: 0;
+          text-align: center;
+          font-size: 14px;
+          color: @m-white0;
+          .rounded-corners(3px);
+          &:hover {
+              background: rgba(@m-blue0, 0);
+              color: rgba(@m-white0, 0.8);
+          }
+      }
+      .look {
+          color: @m-blue0;
+          font-size: 14px;
+          margin-left: 10px;
+          cursor: pointer;
+      }
+  }
+  .red {
+    color: @m-red1;
+  }
+  .ant-btn.minusBtn,.ant-btn.plusBtn {
+    width: 26px;
+    height: 26px;
+    .inlineflex;
+    justify-content: center;
+    background: @m-blue0;
+    .rounded-corners(3px);
+    border: 0;
+    .anticon  {
+      font-size: 12px;
+      color: @m-white0;
+      align-self: center;
+      align-items: center;
+    }
+    &:hover,&:focus {
+      background: rgba(@m-blue0, .8);
+      .anticon {
+        color: rgba(@m-white0, .8);
+      }
+    }
+  }
+  .ant-btn.plusBtn{
+    margin-right: 10px;
+    background: transparent;
+    border: 1px solid #3A87F7;
+    .anticon {
+      color: @m-blue0;
+    }
+  }
+  .white {
+    color: @m-white0;
+  }
+  .dialogTable {
+    .ant-table {
+      .ant-table-content {
+        .ant-table-body {
+          table {
+            tr {
+              td {
+                padding: 0;
+                .ant-input.dialogInput {
+                  height: 34px;
+                  line-height: 34px;
+                  border: 0;
+                  border-radius: 0;
+                }
+                .dialogSelect.ant-select-single {
+                  float: left;
+                  margin-right: 0;
+                  .ant-select-selector {
+                    padding: 0 10px;
+                    height: 34px;
+                    background: @m-grey21;
+                    border: 0;
+                    border-radius: 0;
+                    .ant-select-selection-placeholder {
+                      color: @m-grey10;
+                      text-align: left;
+                    }
+                  }
+                  .ant-select-arrow {
+                    color: @m-blue0;
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
     }
+  }
 }
-</style
->;
+</style>

+ 2 - 2
src/views/information/warehouse-info/index.vue

@@ -29,5 +29,5 @@
 
 <style lang="less">
     .warehouse-info {
-    }</style
->;
+    }
+</style>;