Procházet zdrojové kódy

Merge branch 'feature/Feature-basic_data' of https://gogs.zfire.top/zfire-front/supply-front into feature/Feature-basic_data

chen před 3 roky
rodič
revize
b1f7f4fa55

+ 9 - 0
src/api/basic_data/material.js

@@ -315,3 +315,12 @@ export function getUserList(params) {
     params
   })
 }
+
+
+export function getPriceSubmit(params) {
+  return request({
+    url:'/product-upd-price/submit',
+    method: 'POST',
+    params
+  })
+}

+ 45 - 0
src/api/supply/apply.js

@@ -117,4 +117,49 @@ export function getEnginList(params) {
     method: 'get',
     params
   })
+}
+
+// 工程发货申请单 - 获取详情
+export function getEnginDetail(params) {
+  return request({
+    url: '/invoice/detailProject',
+    method: 'get',
+    params
+  })
+}
+
+// 工程发货申请单 - 获取产品列表
+export function getEnginGoodsList(params) {
+  return request({
+    url: '/invoice/listProjectOrder',
+    method: 'get',
+    params
+  })
+}
+
+// 工程发货申请单 - 新增
+export function addEngin(params) {
+  return request({
+    url: '/invoice/addProject',
+    method: 'post',
+    data: params
+  })
+}
+
+// 工程发货申请单 - 编辑
+export function editEngin(params) {
+  return request({
+    url: '/invoice/updateProject',
+    method: 'post',
+    data: params
+  })
+}
+
+// 工程发货申请单 - 审批
+export function examineEngin(params) {
+  return request({
+    url: '/invoice/approvalInvoiceProject',
+    method: 'post',
+    data: params
+  })
 }

+ 1 - 1
src/api/supply/engin.js

@@ -270,7 +270,7 @@ export function getComLoginList(params) {
   })
 }
 
-// 商用工程订单 - 获取工程登录列表
+// 商用工程订单 - 获取工程登录详情
 export function getComLoginDetail(params) {
   return request({
     url: '/engin-info/detail',

+ 154 - 148
src/views/basic_data/material/components/modify_list-apply.vue

@@ -21,47 +21,47 @@
               ></el-input>
             </el-form-item>
           </el-col>
-<!--          <el-col :xs="24" :sm="12" :lg="6">-->
-<!--            <el-form-item label="调价业务员">-->
-<!--              <el-select-->
-<!--                placeholder="请选择调价业务员"-->
-<!--                filterable-->
-<!--                @change="handleUser"-->
-<!--                v-model="serviceId"-->
-<!--              >-->
-<!--                <el-option-->
-<!--                  v-for="(item, index) in userList"-->
-<!--                  :label="item.nickName"-->
-<!--                  :value="item.roleId"-->
-<!--                  :key="index"-->
-<!--                ></el-option>-->
-<!--              </el-select>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--          <el-col :xs="24" :sm="12" :lg="6">-->
-<!--            <el-form-item label="调价部门">-->
-<!--              <el-input-->
-<!--                placeholder="调价部门"-->
-<!--                disabled-->
-<!--                v-model="adminCompanyName"-->
-<!--              ></el-input>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--          <el-col :xs="24" :sm="12" :lg="6">-->
-<!--            <el-form-item label="销售类型">-->
-<!--              <el-select-->
-<!--                placeholder="请选择销售类型"-->
-<!--                filterable-->
-<!--                v-model="saleTypeId"-->
-<!--              >-->
-<!--                <el-option-->
-<!--                  v-for="item in typeList"-->
-<!--                  :label="item.saleName"-->
-<!--                  :value="item.id"-->
-<!--                ></el-option>-->
-<!--              </el-select>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
+          <!-- <el-col :xs="24" :sm="12" :lg="6">
+                     <el-form-item label="调价业务员">
+                       <el-select
+                         placeholder="请选择调价业务员"
+                         filterable
+                         @change="handleUser"
+                         v-model="serviceId"
+                       >
+                         <el-option
+                           v-for="(item, index) in userList"
+                           :label="item.nickName"
+                           :value="item.roleId"
+                           :key="index"
+                         ></el-option>
+                       </el-select>
+                     </el-form-item>
+                   </el-col>
+                   <el-col :xs="24" :sm="12" :lg="6">
+                     <el-form-item label="调价部门">
+                       <el-input
+                         placeholder="调价部门"
+                         disabled
+                         v-model="adminCompanyName"
+                       ></el-input>
+                     </el-form-item>
+                   </el-col> -->
+          <!-- <el-col :xs="24" :sm="12" :lg="6">
+                     <el-form-item label="销售类型">
+                       <el-select
+                         placeholder="请选择销售类型"
+                         filterable
+                         v-model="saleTypeId"
+                       >
+                         <el-option
+                           v-for="item in typeList"
+                           :label="item.saleName"
+                           :value="item.id"
+                         ></el-option>
+                       </el-select>
+                     </el-form-item>
+                   </el-col> -->
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="文件编码">
               <el-input placeholder="请输入" v-model="base.remark"></el-input>
@@ -131,13 +131,15 @@
               align="center"
               label="存货编码"
               prop="materialNumber"
-
               min-width="160"
               show-overflow-tooltip
             >
               <template slot-scope="scope">
                 <el-form-item>
-                  <el-input disabled v-model="scope.row.materialNumber"></el-input>
+                  <el-input
+                    disabled
+                    v-model="scope.row.materialNumber"
+                  ></el-input>
                 </el-form-item>
               </template>
             </el-table-column>
@@ -150,7 +152,10 @@
             >
               <template slot-scope="scope">
                 <el-form-item>
-                  <el-input disabled v-model="scope.row.materialName"></el-input>
+                  <el-input
+                    disabled
+                    v-model="scope.row.materialName"
+                  ></el-input>
                 </el-form-item>
               </template>
             </el-table-column>
@@ -163,20 +168,23 @@
             >
               <template slot-scope="scope">
                 <el-form-item>
-                  <el-input disabled v-model="scope.row.specification"></el-input>
+                  <el-input
+                    disabled
+                    v-model="scope.row.specification"
+                  ></el-input>
                 </el-form-item>
               </template>
             </el-table-column>
             <el-table-column
               align="center"
               label="计量单位"
-              prop="company"
+              prop="unit"
               min-width="160"
               show-overflow-tooltip
             >
               <template slot-scope="scope">
                 <el-form-item>
-                  <el-input v-model="scope.row.SalesType"></el-input>
+                  <el-input v-model="scope.row.unit"></el-input>
                 </el-form-item>
               </template>
             </el-table-column>
@@ -214,9 +222,10 @@
               ><template slot-scope="scope">
                 <el-form-item>
                   <el-select
+                    multiple
                     v-model="scope.row.walletRebateId"
                     placeholder="请选择返利类型"
-                    @change="handelRebateList($event, scope.$index)"
+                    @change="handelRebateList($event, scope.$index, scope.row)"
                   >
                     <el-option
                       v-for="(item, index) in rebateList"
@@ -309,8 +318,9 @@
               ><template slot-scope="scope">
                 <el-form-item>
                   <el-select
+                    multiple
                     v-model="scope.row.walletsId"
-                    @change="handelWallets($event, scope.$index)"
+                    @change="handelWallets($event, scope.$index, scope.row)"
                     placeholder="请选择现金钱包"
                   >
                     <el-option
@@ -440,7 +450,7 @@
             <el-table-column
               align="center"
               label="计量单位"
-              prop="company"
+              prop="unit"
               min-width="160"
               show-overflow-tooltip
             >
@@ -699,8 +709,8 @@
             @select-all="handleSelectionAllChange"
             @selection-change="handleSelectionChange"
           >
-            <el-table-column type="selection" width="55"> </el-table-column>
-
+            <el-table-column align="center" type="selection" width="55">
+            </el-table-column>
             <el-table-column
               align="center"
               label="使用组织"
@@ -773,7 +783,7 @@
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
             :current-page="currentPage"
-            :page-sizes="[10, 20, 30, 50]"
+            :page-sizes="[5]"
             :page-size="10"
             layout="total, sizes, prev, pager, next, jumper"
             :total="listTotal"
@@ -885,24 +895,73 @@ export default {
     });
   },
   methods: {
-    handelWallets(e, index) {
-      let obj =  {
-         	"billId": "",
-					"id": "",
-					"parentId": "",
-					"parentItemId": "",
-					"walletRebateId": e
+    // xua
+    handelWallets(e, index, row) {
+      for (let i = 0; i < e.length; i++) {
+        if (this.items[index].wallets.length) {
+          console.log(1212);
+          for (let j = 0; j < this.items[index].wallets.length; j++) {
+            if (e[i] !== this.items[index].wallets[j].walletId) {
+              this.$set(this.items[index], "wallets", [
+                ...this.items[index].wallets,
+                {
+                  type: "COMMONLY",
+                  id: "",
+                  updPriceBillId: row.cid,
+                  updPriceBillItemId: row.cid,
+                  walletId: e[i],
+                },
+              ]);
+            }
+          }
+        } else {
+          console.log(987);
+          this.$set(this.items[index], "wallets", [
+            {
+              type: "COMMONLY",
+              id: "",
+              updPriceBillId: row.id,
+              updPriceBillItemId: row.id,
+              walletId: e[0],
+            },
+          ]);
         }
+      }
 
-      this.$set(this.items[index], "wallets", [...this.items[index].wallets,obj]);
+      console.log(this.items[index], 456);
     },
-    handelRebateList(e, index) {
-      const reabteData = this.rebateList.filter((k) => {
-        return k.walletRebateId == e;
-      })[0];
-      this.$set(this.items[index], "walletRebateName", reabteData.name);
-      this.$set(this.items[index], "walletRebateId", reabteData.walletRebateId);
-      this.$set(this.items[index], "rebateRate", reabteData.rebateRate);
+    handelRebateList(e, index, row) {
+      for (let i = 0; i < e.length; i++) {
+        if (this.items[index].wallets.length) {
+          console.log(1212);
+          for (let j = 0; j < this.items[index].wallets.length; j++) {
+            if (e[i] !== this.items[index].wallets[j].walletId) {
+              this.$set(this.items[index], "wallets", [
+                ...this.items[index].wallets,
+                {
+                  type: "REBATE",
+                  id: "",
+                  updPriceBillId: row.cid,
+                  updPriceBillItemId: row.cid,
+                  walletId: e[i],
+                },
+              ]);
+            }
+          }
+        } else {
+          console.log(987);
+
+          this.$set(this.items[index], "rebateWallets", [
+            {
+              type: "REBATE",
+              id: "",
+              updPriceBillId: row.id,
+              updPriceBillItemId: row.id,
+              walletId: e[0],
+            },
+          ]);
+        }
+      }
     },
     handleUser(e) {
       const adminCompany = this.userList.filter((k) => {
@@ -910,7 +969,7 @@ export default {
       })[0];
       this.adminWebsitId = adminCompany.adminUserId;
       this.adminCompanyName = adminCompany.adminCompanyName;
-      this.serviceName = adminCompany.nickName || 'd';
+      this.serviceName = adminCompany.nickName || "d";
       this.serviceId = adminCompany.roleId;
     },
     goBack() {
@@ -930,6 +989,7 @@ export default {
           this.items.push({
             baseUnitId: "",
             batchPrice: "",
+            unit: "",
             billId: "",
             endDate: "",
             isPromote: "",
@@ -941,41 +1001,41 @@ export default {
             materialOldNumber: this.selectData[i].oldNumber,
             parentId: "",
             walletRebateName: "",
-            walletRebateId: "",
+            walletRebateId: [],
             rebateRate: "",
             qty: "",
             rebateUseRate: "",
-            retailPrice: ""||0,
+            retailPrice: "" || 0,
             saleTypeId: "",
             specification: this.selectData[i].specification,
             startDate: this.selectData[i].startDate,
-            wallets: [
-
-            ],
+            wallets: [],
+            rebateWallets: [],
             rebateList: [...this.rebateList],
             isPublishArr: [
               {
                 value: "是",
-                bool: 1,
+                bool: true,
               },
               {
                 value: "否",
-                bool: 0,
+                bool: false,
               },
             ],
             isPromoteArr: [
               {
                 value: "是",
-                bool: 1,
+                bool: true,
               },
               {
                 value: "否",
-                bool: 0,
+                bool: false,
               },
             ],
+            cid: this.selectData[i].id,
           });
         }
-        // console.log(this.items);
+        this.selectData = [];
         this.centerDialogVisible = false;
       } else {
         this.$errorMsg("请选择内容");
@@ -1019,19 +1079,18 @@ export default {
     },
     hanleSbumit() {
       for (let i = 0; i < this.items.length; i++) {
-
-          for (let j = i+1; j < this.items.length; j++) {
-
-              if (this.items[i].materialNumber==this.items[j].materialNumber) {
-                if (this.items[i].saleTypeId ==this.items[j].saleTypeId ) {
-                      this.$errorMsg('有存货编码销售类型相同')
-                return
-                }
-
-              }
-
-
+        this.items[i].wallets = [
+          ...this.items[i].rebateWallets,
+          ...this.items[i].wallets,
+        ];
+        for (let j = i + 1; j < this.items.length; j++) {
+          if (this.items[i].materialNumber == this.items[j].materialNumber) {
+            if (this.items[i].saleTypeId == this.items[j].saleTypeId) {
+              this.$errorMsg("有存货编码销售类型相同");
+              return;
+            }
           }
+        }
       }
       const params = {
         ...this.base,
@@ -1039,67 +1098,14 @@ export default {
         saleTypeId: this.saleTypeId,
         adminWebsitId: this.adminWebsitId,
         serviceId: this.serviceId,
-      adminCompanyName :this.adminCompanyName,
-      serviceName :this.nickName ,
-
-      }
+        adminCompanyName: this.adminCompanyName,
+        serviceName: this.nickName,
+      };
       getProductRriceAdd(params).then((res) => {
-        // this.items = {
-        //   baseUnitId: "32",
-        //   batchPrice: "23",
-        //   billId: "",
-        //   endDate: "",
-        //   id: null,
-        //   isPromote: "",
-        //   isPublish: "",
-        //   materialId: "",
-        //   materialName: "",
-        //   materialNumber: "",
-        //   parentId: "",
-        //   qty: "",
-        //   rebateUseRate: "",
-        //   retailPrice: "",
-        //   saleTypeId: "",
-        //   specification: "",
-        //   startDate: "",
-        //   wallets: [],
-        //   isPublishArr: [
-        //     {
-        //       value: "是",
-        //       bool: 1,
-        //     },
-        //     {
-        //       value: "否",
-        //       bool: 0,
-        //     },
-        //   ],
-        //   isPromoteArr: [
-        //     {
-        //       value: "是",
-        //       bool: 1,
-        //     },
-        //     {
-        //       value: "否",
-        //       bool: 0,
-        //     },
-        //   ],
-        // };
-        // this.base = {
-        //   adminCompanyId: "",
-        //   adminWebsitId: "",
-        //   billId: "",
-        //   examineNote: "",
-        //   examineResult: true,
-        //   examineStatus: "",
-        //   id: null,
-        //   serviceId: "",
-        //   serviceName: "",
-        //   remark: "",
-        //   saleTypeId: "",
-        // };
         this.$successMsg("成功");
         getProductRriceDetail({ id: res.data }).then((res) => {
           this.base.billId = res.data.billId;
+          this.$parent.show = 1
         });
       });
     },

+ 53 - 37
src/views/basic_data/material/components/modify_list-approval.vue

@@ -19,13 +19,13 @@
               <el-input
                 placeholder="请输入"
                 disabled
-                v-model="detail.billId"
+                v-model="detail.updPriceBillId"
               ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="调价部门" prop="account">
-              <el-input placeholder="请输入" v-model="men"  disabled></el-input>
+              <el-input placeholder="请输入" v-model="detail.adminWebsitName"  disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
@@ -33,7 +33,7 @@
               <el-input
                 disabled
                 placeholder="请输入"
-                v-model="ren"
+                v-model="detail.serviceName"
               ></el-input>
             </el-form-item>
           </el-col>
@@ -71,7 +71,7 @@
               <el-table-column
                 align="center"
                 label="存货编码"
-                prop="billId"
+                prop="materialId"
                 min-width="160"
                 show-overflow-tooltip
               ></el-table-column>
@@ -92,7 +92,7 @@
               <el-table-column
                 align="center"
                 label="计量单位"
-                prop="baseUnitId"
+                prop="unit"
                 min-width="160"
                 show-overflow-tooltip
               ></el-table-column>
@@ -105,19 +105,55 @@
               ></el-table-column>
               <el-table-column
                 align="center"
-                label="零售价"
-                prop="retailPrice"
+                label="格力折扣"
+                prop="discAmount"
                 min-width="160"
                 show-overflow-tooltip
               >
               </el-table-column>
+             <el-table-column
+                align="center"
+                label="返利类型(钱包)"
+                prop="wallets2"
+                min-width="200"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <template v-for="(item, index) in scope.row.wallets2">
+                    <template v-if="item.type === 'REBATE'">
+                      <el-tag
+                        type="success"
+                        style="margin: 0 10px"
+                        size="small"
+                        :key="index"
+                      >
+                        {{ item.walletName }}
+                      </el-tag>
+                    </template>
+                  </template>
+                </template>
+              </el-table-column>
               <el-table-column
                 align="center"
-                label="返利使用比例"
-                prop="rebateRate"
-                min-width="160"
+                label="现金钱包"
+                prop="wallets2"
+                min-width="200"
                 show-overflow-tooltip
               >
+                <template slot-scope="scope">
+                  <template v-for="(item, index) in scope.row.wallets2">
+                    <template v-if="item.type === 'COMMONLY'">
+                      <el-tag
+                        type="success"
+                        style="margin: 0 10px"
+                        size="small"
+                        :key="index"
+                      >
+                        {{ item.walletName }}
+                      </el-tag>
+                    </template>
+                  </template>
+                </template>
               </el-table-column>
               <el-table-column
                 align="center"
@@ -185,9 +221,9 @@
             <el-col :xs="12" :sm="12" :lg="12" class="item">
               <div class="label">审批结果</div>
               <div class="value">
-                <el-radio-group v-model="detail.examineResult">
-                  <el-radio label="通过" :value="true"></el-radio>
-                  <el-radio label="驳回" :value="false"></el-radio>
+                <el-radio-group v-model="radio">
+                  <el-radio label="OK" >通过</el-radio>
+                  <el-radio label="FAIL" >驳回</el-radio>
                 </el-radio-group>
               </div>
             </el-col>
@@ -228,23 +264,8 @@ export default {
   },
   data() {
     return {
-      radio: "",
+      radio: 'OK',
       dataList: [
-        {
-          SalesType: "*一票机*",
-          code: "23022051775",
-          name: "夏之凉变频1",
-          model: "KFR-26GW",
-          company: "套",
-          wholesale: "2999",
-          retail: "2899",
-          rebate: "0.8",
-          effectiveDate: "2021-11-02",
-          expiryDate: "2021-11-02",
-          promotion: "否",
-          number: "51",
-          release: "是",
-        },
       ],
       typeList: [],
       userList:[],
@@ -274,12 +295,7 @@ export default {
       userName: "",
     }).then((res) => {
       this.userList = res.data.records;
-      var a= this.userList.filter(k=>{
 
-        return k.roleId == this.detail.serviceId
-      })[0]
-      this.men = a.adminCompanyName
-      this.ren = a.nickName
     });
   },
   methods: {
@@ -293,12 +309,12 @@ export default {
       this.$parent.show = 1;
     },
     onSubmit() {
-
+          console.log(this.radio);
       const params = {
         ...this.detail,
-
+        examineStatus:this.radio
       };
-        params.examineResult = params.examineResult == "通过" ? true : false ;
+
       getProductRriceConfirm(params).then((res) => {
         this.$successMsg("已提交审核");
       });

+ 96 - 59
src/views/basic_data/material/components/modify_list-detail.vue

@@ -15,34 +15,29 @@
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="单据编号" prop="billId">
               <el-input
-                placeholder="请输入"
+                placeholder="系统生成"
                 disabled
-                v-model="detail.billId"
+                v-model="detail.updPriceBillId"
               ></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="调价部门" prop="account">
-              <el-input placeholder="请输入"    v-model="men" disabled></el-input>
+              <el-input placeholder="系统生成" v-model="detail.adminWebsitName" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="调价业务员" prop="operatorName">
-              <el-input
-                disabled
-                placeholder="请输入"
-                v-model="ren"
-              ></el-input>
+              <el-input disabled placeholder="系统生成" v-model="detail.serviceName"></el-input>
             </el-form-item>
           </el-col>
 
-
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="文件编码" prop="operatorName">
               <el-input
                 disabled
-                placeholder="请输入"
+                placeholder="系统生成"
                 v-model="detail.remark"
               ></el-input>
             </el-form-item>
@@ -64,14 +59,14 @@
                 align="center"
                 label="销售类型"
                 prop="saleTypeId"
-                 :formatter="formatterType"
+                :formatter="formatterType"
                 min-width="160"
                 show-overflow-tooltip
               ></el-table-column>
               <el-table-column
                 align="center"
                 label="存货编码"
-                prop="billId"
+                prop="materialId"
                 min-width="160"
                 show-overflow-tooltip
               ></el-table-column>
@@ -92,7 +87,7 @@
               <el-table-column
                 align="center"
                 label="计量单位"
-                prop="baseUnitId"
+                prop="unit"
                 min-width="160"
                 show-overflow-tooltip
               ></el-table-column>
@@ -105,19 +100,55 @@
               ></el-table-column>
               <el-table-column
                 align="center"
-                label="零售价"
-                prop="retailPrice"
+                label="格力折扣"
+                prop="discAmount"
                 min-width="160"
                 show-overflow-tooltip
               >
               </el-table-column>
               <el-table-column
                 align="center"
-                label="返利使用比例"
-                prop="rebateUseRate"
-                min-width="160"
+                label="返利类型(钱包)"
+                prop="wallets2"
+                min-width="200"
+                show-overflow-tooltip
+              >
+                <template slot-scope="scope">
+                  <template v-for="(item, index) in scope.row.wallets2">
+                    <template v-if="item.type === 'REBATE'">
+                      <el-tag
+                        type="success"
+                        style="margin: 0 10px"
+                        size="small"
+                        :key="index"
+                      >
+                        {{ item.walletName }}
+                      </el-tag>
+                    </template>
+                  </template>
+                </template>
+              </el-table-column>
+              <el-table-column
+                align="center"
+                label="现金钱包"
+                prop="wallets2"
+                min-width="200"
                 show-overflow-tooltip
               >
+                <template slot-scope="scope">
+                  <template v-for="(item, index) in scope.row.wallets2">
+                    <template v-if="item.type === 'COMMONLY'">
+                      <el-tag
+                        type="success"
+                        style="margin: 0 10px"
+                        size="small"
+                        :key="index"
+                      >
+                        {{ item.walletName }}
+                      </el-tag>
+                    </template>
+                  </template>
+                </template>
               </el-table-column>
               <el-table-column
                 align="center"
@@ -170,42 +201,49 @@
             </el-table>
           </div>
         </div>
-    <div class="diy-table-1">
-      <el-row :gutter="0">
-        <el-col :xs="12" :sm="8" :lg="8" class="item">
-          <div class="label">审批人</div>
-          <div class="value">{{this.$store.getters.name }}</div>
-        </el-col>
-        <el-col :xs="12" :sm="8" :lg="8" class="item">
-          <div class="label">审批结果</div>
-          <div class="value">{{detail.examineResult?'通过':'驳回'}}</div>
-        </el-col>
-        <el-col :xs="12" :sm="8" :lg="8" class="item">
-          <div class="label">审批时间</div>
-          <div class="value">{{''}}</div>
-        </el-col>
-        <el-col :xs="24" :sm="24" :lg="24" class="item">
-          <div class="label">审批说明</div>
-          <div class="value">{{detail.examineNote}}</div>
-        </el-col>
-      </el-row>
-    </div>
+        <div class="diy-table-1">
+          <el-row :gutter="0">
+            <el-col :xs="12" :sm="8" :lg="8" class="item">
+              <div class="label">审批人</div>
+              <div class="value">
+              <!-- {{ this.$store.getters.name }} -->
+              {{detail.confirmName}}
+              </div>
+            </el-col>
+            <el-col :xs="12" :sm="8" :lg="8" class="item">
+              <div class="label">审批结果</div>
+              <div class="value">
+                {{ detail.examineStatus=='OK' ? "通过" : "驳回" }}
+              </div>
+            </el-col>
+            <el-col :xs="12" :sm="8" :lg="8" class="item">
+              <div class="label">审批时间</div>
+              <div class="value">{{ detail.confirmTime }}</div>
+            </el-col>
+            <el-col :xs="24" :sm="24" :lg="24" class="item">
+              <div class="label">审批说明</div>
+              <div class="value">{{ detail.examineNote }}</div>
+            </el-col>
+          </el-row>
+        </div>
       </el-form>
     </div>
   </div>
 </template>
 
-
-
 <script>
-import { getProductRriceConfirm, getTypeList,getUserList } from "@/api/basic_data/material";
+import {
+  getProductRriceConfirm,
+  getTypeList,
+  getUserList,
+} from "@/api/basic_data/material";
 
 export default {
-  props:{
-    detail:{
-      type:Object,
-      default:{}
-    }
+  props: {
+    detail: {
+      type: Object,
+      default: {},
+    },
   },
   data() {
     return {
@@ -226,10 +264,10 @@ export default {
           release: "是",
         },
       ],
-       typeList: [],
-      userList:[],
-      men:'',
-      ren:''
+      typeList: [],
+      userList: [],
+      men: "",
+      ren: "",
     };
   },
   created() {
@@ -240,8 +278,8 @@ export default {
       saleName: "",
       status: "",
     };
-      console.log(this.detail);
-       getTypeList(params).then((res) => {
+    console.log(this.detail);
+    getTypeList(params).then((res) => {
       this.typeList = res.data.records;
     });
     getUserList({
@@ -254,16 +292,15 @@ export default {
       userName: "",
     }).then((res) => {
       this.userList = res.data.records;
-      var a= this.userList.filter(k=>{
-
-        return k.roleId == this.detail.serviceId
-      })[0]
-      this.men = a.adminCompanyName
-      this.ren = a.nickName
+      var a = this.userList.filter((k) => {
+        return k.roleId == this.detail.serviceId;
+      })[0];
+      // this.men = a.adminCompanyName;
+      // this.ren = a.nickName;
     });
   },
   methods: {
-       formatterType(row) {
+    formatterType(row) {
       return this.typeList.filter((k) => {
         return k.id == row.saleTypeId;
       })[0]?.saleName;

+ 77 - 12
src/views/basic_data/material/modify_list.vue

@@ -115,14 +115,14 @@
             <el-table-column
               align="center"
               label="调价日期"
-              prop="modifyPriceDate"
+              prop="createBy"
               min-width="160"
               show-overflow-tooltip
             ></el-table-column>
             <el-table-column
               align="center"
               label="销售类型"
-              prop="saleTypeId"
+              prop="saleTypeName"
               :formatter="formatterType"
               min-width="160"
               show-overflow-tooltip
@@ -180,7 +180,7 @@
             <el-table-column
               align="center"
               label="格力折扣"
-              prop="retailPrice"
+              prop="discAmount"
               min-width="160"
               show-overflow-tooltip
             ></el-table-column>
@@ -212,11 +212,56 @@
             </el-table-column>
             <el-table-column
               align="center"
+              label="返利类型(钱包)"
+              prop="wallets"
+              min-width="200"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <template v-for="(item, index) in scope.row.wallets">
+                     <template v-if="item.type === 'REBATE'">
+
+                        <el-tag
+                  type="success"
+                  style="margin: 0 10px"
+                  size="small"
+
+                  :key="index"
+                  >
+               {{ item.walletName }}
+                </el-tag>
+                  </template
+                  >
+                </template>
+
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
               label="现金钱包"
               prop="modifyPriceDepartment"
-              min-width="160"
+              min-width="200"
               show-overflow-tooltip
-            ></el-table-column>
+            >
+              <template slot-scope="scope">
+                <template  v-for="(item, index) in scope.row.wallets">
+                  <template v-if="item.type === 'COMMONLY'">
+
+                   <el-tag
+                  type="success"
+                  style="margin: 0 10px"
+                  size="small"
+
+                  :key="index"
+                >
+                {{ item.walletName }}
+                </el-tag>
+                    </template
+                  >
+                </template>
+
+              </template>
+            </el-table-column>
             <el-table-column
               align="center"
               label="调价部门"
@@ -266,7 +311,7 @@
                 <el-tag
                   type="danger"
                   v-else-if="scope.row.examineStatus == 'WAIT'"
-                  >提交</el-tag
+                  >待审核</el-tag
                 >
                 <el-tag
                   type="danger"
@@ -288,12 +333,24 @@
               show-overflow-tooltip
             >
               <template slot-scope="scope">
-                <el-button
-                  type="text"
-                  class="textColor"
-                  @click="approvalFn(scope.row.updPriceBillId)"
-                  >审批</el-button
-                >
+                <template v-if="scope.row.examineStatus == 'SAVE'">
+                  <el-popconfirm
+                    title="这是一段内容确定删除吗?"
+                    @onConfirm="handleGetPriceSubmit(scope.row.updPriceBillId)"
+                    style="margin-right: 10px"
+                  >
+                    <el-button type="text" slot="reference">提审</el-button>
+                  </el-popconfirm>
+                </template>
+
+                <template v-if="scope.row.examineStatus == 'WAIT'">
+                  <el-button
+                    type="text"
+                    class="textColor"
+                    @click="approvalFn(scope.row.updPriceBillId)"
+                    >审批</el-button
+                  >
+                </template>
                 <el-button
                   type="text"
                   class="textColor"
@@ -335,6 +392,7 @@ import {
   getProductRriceList,
   getProductRricedel,
   getTypeList,
+  getPriceSubmit,
 } from "@/api/basic_data/material";
 import { downloadFiles } from "@/utils/util";
 export default {
@@ -433,6 +491,13 @@ export default {
         });
       });
     },
+    handleGetPriceSubmit(id) {
+      console.log(id);
+      getPriceSubmit({ id }).then((res) => {
+        this.$successMsg("已提审");
+        this.getList();
+      });
+    },
     approvalFn(id) {
       getProductRriceDetail({ id }).then((res) => {
         this.detail = res.data;

+ 54 - 9
src/views/basic_data/material/price_list.vue

@@ -112,7 +112,7 @@
           <el-table-column
             align="center"
             label="产品品类"
-            prop="categoryId"
+            prop="mainName"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
@@ -146,7 +146,7 @@
           ></el-table-column>
           <el-table-column
             align="center"
-            label="主计量单位名称"
+            label="单位"
             prop="unit"
             min-width="160"
             show-overflow-tooltip
@@ -158,13 +158,58 @@
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
-          <el-table-column
-            align="center"
-            label="返利比例"
-            prop="rebateUseRate"
-            min-width="160"
-            show-overflow-tooltip
-          ></el-table-column>
+              <el-table-column
+              align="center"
+              label="返利类型(钱包)"
+              prop="wallets"
+              min-width="200"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <template v-for="(item, index) in scope.row.wallets">
+                     <template v-if="item.type === 'REBATE'">
+
+                        <el-tag
+                  type="success"
+                  style="margin: 0 10px"
+                  size="small"
+
+                  :key="index"
+                  >
+               {{ item.walletName }}
+                </el-tag>
+                  </template
+                  >
+                </template>
+
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="center"
+              label="现金钱包"
+              prop="modifyPriceDepartment"
+              min-width="200"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <template  v-for="(item, index) in scope.row.wallets">
+                  <template v-if="item.type === 'COMMONLY'">
+
+                   <el-tag
+                  type="success"
+                  style="margin: 0 10px"
+                  size="small"
+
+                  :key="index"
+                >
+                {{ item.walletName }}
+                </el-tag>
+                    </template
+                  >
+                </template>
+
+              </template>
+            </el-table-column>
           <el-table-column
             align="center"
             label="生效日期"

+ 58 - 42
src/views/sales_policy/components/AddCondition.vue

@@ -1,7 +1,11 @@
 <template>
   <el-container>
     <el-header height="50px" class="header">
-      <el-page-header @back="handleBack" :content="!id? '添加页面':'详情页面'"> </el-page-header>
+      <el-page-header
+        @back="handleBack"
+        :content="!id ? '添加页面' : '详情页面'"
+      >
+      </el-page-header>
     </el-header>
     <div class="line">
       <el-divider></el-divider>
@@ -106,9 +110,20 @@
             <el-row>
               <el-row>
                 <el-table style="width: 100%" :data="item" border>
-                  <el-table-column type="selection" width="55" align="center" v-if="!id">
+                  <el-table-column
+                    type="selection"
+                    width="55"
+                    align="center"
+                    v-if="!id"
+                  >
                   </el-table-column>
-                  <el-table-column type="index"  label="序号" width="55" align="center" v-else>
+                  <el-table-column
+                    type="index"
+                    label="序号"
+                    width="55"
+                    align="center"
+                    v-else
+                  >
                   </el-table-column>
                   <el-table-column
                     label="货品名称"
@@ -116,7 +131,9 @@
                     align="center"
                     prop="materialName"
                   >
-                    <template slot-scope="scope">{{ scope.row.materialName }}</template>
+                    <template slot-scope="scope">{{
+                      scope.row.materialName
+                    }}</template>
                   </el-table-column>
                   <el-table-column
                     prop="specification"
@@ -136,7 +153,11 @@
             </el-row>
             <el-col :xs="24" :sm="8" :lg="8">
               <el-form-item label="限定机型">
-                <el-input size="small" v-model="limit" :readonly="!id?false:true"></el-input>
+                <el-input
+                  size="small"
+                  v-model="limit"
+                  :readonly="!id ? false : true"
+                ></el-input>
               </el-form-item>
             </el-col>
 
@@ -149,7 +170,7 @@
               <el-form-item :label="'配提' + (index + 1) + '比例'">
                 <el-input
                   size="small"
-                  :readonly="!id?false:true"
+                  :readonly="!id ? false : true"
                   v-model="popArr['line_' + index]"
                 ></el-input>
               </el-form-item>
@@ -170,13 +191,14 @@
           <el-button type="primary" size="small" @click="handleSubmit"
             >保存</el-button
           >
-
         </el-col>
         <el-col :xs="24" :sm="12" :lg="12" :offset="0" class="tr">
           <el-button type="primary" size="small" @click="hanleAddModel"
             >添加</el-button
           >
-            <el-button type="primary" size="small" @click="handleresale">重置</el-button>
+          <el-button type="primary" size="small" @click="handleresale"
+            >重置</el-button
+          >
         </el-col>
       </el-row>
     </el-footer>
@@ -385,10 +407,10 @@ export default {
       type: String,
       default: "",
     },
-    policyId:{
-      type:String,
-      default:""
-    }
+    policyId: {
+      type: String,
+      default: "",
+    },
   },
   data() {
     return {
@@ -449,36 +471,32 @@ export default {
     },
     getCommonApi() {
       if (this.id) {
-
         getConditionMaterialDetail({ id: this.policyId }).then((res) => {
-          this.pop = res.data.pop
+          this.pop = res.data.pop;
 
-            let pop = res.data.pop.split(":");
-            for (let i = 0; i < pop.length; i++) {
-                 if (i == 0) {
-                   this.limit = pop[i];
-                   continue
-               }
-
-
-              this.$set(this.popArr,`line_${i-1}`,pop[i])
+          let pop = res.data.pop.split(":");
+          for (let i = 0; i < pop.length; i++) {
+            if (i == 0) {
+              this.limit = pop[i];
+              continue;
             }
-            console.log(this.popArr);
-
-              for (let k = 0; k <pop.length ; k++) {
-               getConditionMaterialList({
-                pageNum: 1,
-                pageSize: -1,
-                policyConditionId:res.data.id,
-                popType: k+1,
-                  }).then((res) => {
 
-                this.conditionBoxs.push(res.data.records);
-                  });
-              }
-                  console.log(this.conditionBoxs);
+            this.$set(this.popArr, `line_${i - 1}`, pop[i]);
+          }
+          console.log(this.popArr);
 
-        })
+          for (let k = 0; k < pop.length; k++) {
+            getConditionMaterialList({
+              pageNum: 1,
+              pageSize: -1,
+              policyConditionId: res.data.id,
+              popType: k + 1,
+            }).then((res) => {
+              this.conditionBoxs.push(res.data.records);
+            });
+          }
+          console.log(this.conditionBoxs);
+        });
       }
     },
     toggleSelection(rows) {
@@ -583,7 +601,6 @@ export default {
     },
     handleAllAdd() {
       this.conditList2 = this.leftData;
-
       this.leftData = [];
     },
     handleAllDelete() {
@@ -610,7 +627,6 @@ export default {
           if (i == this.arrIndex) {
             this.$set(this.conditionBox, i, [
               ...this.conditList2,
-
               ...this.conditionBox[i],
             ]);
             console.log(this.conditionBox);
@@ -622,9 +638,9 @@ export default {
         this.$errorMsg("请选择内容");
       }
     },
-    handleresale(){
-     Object.assign(this.$data, this.$options.data());
-    }
+    handleresale() {
+      Object.assign(this.$data, this.$options.data());
+    },
   },
   components: {
     AddModel,

+ 0 - 86
src/views/supply/apply/components/apply_detail.vue

@@ -125,76 +125,12 @@
     
     <div class="page-footer">
       <div class="footer" :class="classObj">
-        <el-button  type="primary" @click="openDeliverDialog">直调发货</el-button>
         <el-popconfirm title="确定关闭吗?" @onConfirm="goBack" style="margin-left: 10px;">
           <el-button slot="reference">关 闭</el-button>
         </el-popconfirm>
       </div>
     </div>
 
-    <el-dialog
-      title="直调发货"
-      :visible.sync="isShowDeliverDialog"
-      width="80%">
-      <el-form ref="deliverForm" :model="deliverForm" label-width="70px" size="small" label-position="left">
-        <el-row :gutter="20">
-          <el-col :xs="24" :sm="8" :lg="8">
-            <el-form-item label="工程订单" prop="orderNum">
-              <el-input v-model="deliverForm.orderNum" placeholder="请输入工程订单"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="8" :lg="8" style="height: 51px;">
-            <el-form-item label="发货日期" prop="date">
-              <el-date-picker
-                v-model="deliverForm.date"
-                type="date"
-                value-format="yyyy-MM-dd"
-                style="width: 100%;"
-                placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="8" :lg="8">
-            <el-form-item label="发货仓库" prop="warehouse">
-              <el-select v-model="deliverForm.warehouse" placeholder="请选择发货仓库">
-                <el-option
-                  v-for="item in warehouseList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-
-      <div class="table" style="margin-top: 20px">
-        <el-table :data="detailData.orders" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
-          <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="发货仓库" prop="stockIds" min-width="160" show-overflow-tooltip>
-            <template slot-scope="scope">
-              <span v-for="(item, index) in scope.row.stockIds" :key="index">{{item.name}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column align="center" label="库存数" prop="stockNumber" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="计量单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="申请数量" prop="invoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="审批数量" prop="approvalNumber" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
-        </el-table>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="closeDeliverDialog">取 消</el-button>
-        <el-button type="primary" @click="submitDeliverForm">确 定</el-button>
-      </span>
-    </el-dialog>
-
   </div>
 </template>
 
@@ -223,13 +159,6 @@ export default {
     return {
       imageURL: this.$imageUrl,
       detailData: {},
-
-      isShowDeliverDialog: false,
-      deliverForm: {
-        orderNum: '',
-        date: '',
-      },
-      warehouseList: [],
     }
   },
 
@@ -292,21 +221,6 @@ export default {
       })
     },
 
-    // 打开 直调发货
-    openDeliverDialog() {
-      this.isShowDeliverDialog = true;
-    },
-
-    // 关闭 直调发货
-    closeDeliverDialog() {
-      this.isShowDeliverDialog = false;
-    },
-
-    // 提交 直调发货
-    submitDeliverForm() {
-
-    },
-
   }
 }
 </script>

+ 4 - 1
src/views/supply/apply/components/apply_form.vue

@@ -11,7 +11,7 @@
     <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-width="90px" size="small" label-position="right">
       <el-row :gutter="20">
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="订单号" prop="id">
+          <el-form-item label="订单号" prop="orderNum">
             <el-input v-model="mainForm.orderNum" placeholder="系统自动生成" readonly></el-input>
           </el-form-item>
         </el-col>
@@ -469,6 +469,9 @@ export default {
               return;
             }
           }
+          if(!this.screenForm.warehouse) {
+            return this.$errorMsg('请选择仓库');
+          }
 
           let correspondName = this.warehouseList[findElem(this.warehouseList, 'id', this.screenForm.warehouse)].name;
           let params = {

+ 180 - 215
src/views/supply/apply/components/engin_detail.vue

@@ -2,130 +2,138 @@
   <div class="detail-container">
     <el-page-header @back="goBack" content="详情"></el-page-header>
 
-    <div id="printData">
-      <div class="main-title">
-        <div class="title">工程订单</div>
-      </div>
+    <div class="main-title">
+      <div class="title">工程发货申请单信息</div>
+    </div>
 
-      <div class="diy-table-1">
-        <el-row>
-          <el-col :span="8" class="item">
-            <div class="label">订单号</div>
-            <div class="value">{{detailData.billNo}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">订单日期</div>
-            <div class="value">{{detailData.fdate}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">单据状态</div>
-            <div class="value">{{detailData.srcStockId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">工程登录单号</div>
-            <div class="value">{{detailData.destStockId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">项目名称</div>
-            <div class="value">{{detailData.approveDate}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">单据类型</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">经销商编码</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">使用单位</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">安装地址</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">工程编号</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">厂工厂编码</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">工程登录类型</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">文件编号</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">制单人</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">制单日期</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="24" class="item">
-            <div class="label">格力回复</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="24" class="item">
-            <div class="label">格力内部备注</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="6" class="item">
-            <div class="label">审核人</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="6" class="item">
-            <div class="label">审核日期</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="6" class="item">
-            <div class="label">关闭人</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="6" class="item">
-            <div class="label">关闭日期</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-          <el-col :span="24" class="item">
-            <div class="label">备注</div>
-            <div class="value">{{detailData.approverId}}</div>
-          </el-col>
-        </el-row>
-      </div>
+    <div class="diy-table-1">
+      <el-row>
+        <el-col :span="8" class="item">
+          <div class="label">发货申请单号</div>
+          <div class="value">{{detailData.id}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">申请日期</div>
+          <div class="value">{{detailData.createTime}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">单据状态</div>
+          <div class="value">{{detailData.examineStatus | statusFilter}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">经销商编号</div>
+          <div class="value">{{detailData.customerNumber}}</div>
+        </el-col>
+        <el-col :span="16" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">{{detailData.customerName}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">工程登录编码</div>
+          <div class="value">{{detailData.enginOrderNo}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">工程项目名称</div>
+          <div class="value">{{detailData.refProjectName}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">工程登录类型</div>
+          <div class="value">{{detailData.enginOrderType | enginTypeFilter}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">厂工程编号</div>
+          <div class="value">{{detailData.refFactoryNo}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">使用单位</div>
+          <div class="value">{{detailData.refUseUnit}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label"></div>
+          <div class="value"></div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">联系人</div>
+          <div class="value">{{detailData.refLinkman}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">固定电话</div>
+          <div class="value">{{detailData.refTel}}</div>
+        </el-col>
+        <el-col :span="8" class="item">
+          <div class="label">移动电话</div>
+          <div class="value">{{detailData.refPhone}}</div>
+        </el-col>
+        <el-col :span="24" class="item">
+          <div class="label">安装地址</div>
+          <div class="value">{{detailData.refInstallAddress}}</div>
+        </el-col>
+        <el-col :span="24" class="item">
+          <div class="label">备注</div>
+          <div class="value">{{detailData.remark}}</div>
+        </el-col>
+        <el-col :span="24" class="item file">
+          <div class="label">附件</div>
+          <div class="value">
+            <div class="file-list">
+              <div class="file-item">
+                <el-image v-if="checkFileType(detailData.fileUrl) == 'image'" class="img" :src="imageURL + detailData.fileUrl" :preview-src-list="[imageURL + detailData.fileUrl]"></el-image>
+                <div v-else class="box2" @click="openLink(detailData.fileUrl)">
+                  <img src="@/assets/common/word.png" v-if="checkFileType(detailData.fileUrl) == 'word'" />
+                  <img src="@/assets/common/excel.png" v-if="checkFileType(detailData.fileUrl) == 'excel'" />
+                  <img src="@/assets/common/ppt.png" v-if="checkFileType(detailData.fileUrl) == 'ppt'" />
+                  <img src="@/assets/common/pdf.png" v-if="checkFileType(detailData.fileUrl) == 'pdf'" />
+                  <div class="name ellipsis-3">{{ detailData.fileName }}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="6" class="item">
+          <div class="label">制单人</div>
+          <div class="value">{{detailData.createBy}}</div>
+        </el-col>
+        <el-col :span="6" class="item">
+          <div class="label">制单日期</div>
+          <div class="value">{{detailData.createTime}}</div>
+        </el-col>
+        <el-col :span="6" class="item">
+          <div class="label">审核人</div>
+          <div class="value">{{detailData.approvalName}}</div>
+        </el-col>
+        <el-col :span="6" class="item">
+          <div class="label">审核日期</div>
+          <div class="value">{{detailData.approvalTime}}</div>
+        </el-col>
+        <el-col :span="24" class="item">
+          <div class="label">审批说明</div>
+          <div class="value">{{detailData.approvalRemark}}</div>
+        </el-col>
+      </el-row>
+    </div>
 
-      <div class="main-title">
-        <div class="title">货品信息</div>
-      </div>
+    <div class="main-title">
+      <div class="title">货品信息</div>
+    </div>
 
-      <div class="table" style="margin-top: 20px">
-        <el-table :data="detailData.kingDeeTransferItems" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
-          <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-          <el-table-column align="center" label="引用记录" prop="materialNumber" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="model" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="baseUnitId" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单位" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="总数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="是否使用返利" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="返利使用比例" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="是否直调" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="直调数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="已发货数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单价" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="金额" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="返利" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="备注" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
-        </el-table>
-      </div>
+    <div class="table" style="margin-top: 20px">
+      <el-table :data="detailData.orders" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
+        <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
+        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="订单日期" prop="theTime" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="180" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="物料代码" prop="materialOldNumber" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品编码" prop="materialCode" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="申请数量" prop="invoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="审批数量" prop="approvalNumber" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
+      </el-table>
+    </div>
 
+    <div v-if="isExamine">
       <div class="main-title">
         <div class="title">审批记录</div>
       </div>
@@ -133,121 +141,63 @@
         <el-row :gutter="0">
           <el-col :span="12" class="item">
             <div class="label">审批人</div>
-            <div class="value">2022123233435342</div>
+            <div class="value">{{detailData.approvalName}}</div>
           </el-col>
           <el-col :span="12" class="item">
             <div class="label">审批结果</div>
-            <div class="value">2022123233435342</div>
+            <div class="value">{{detailData.examineStatus | statusFilter}}</div>
           </el-col>
           <el-col :span="24" class="item">
             <div class="label">审批说明</div>
-            <div class="value">2022123233435342</div>
+            <div class="value">{{detailData.approvalRemark}}</div>
           </el-col>
         </el-row>
       </div>
-      
     </div>
     
     <div class="page-footer">
       <div class="footer" :class="classObj">
-        <el-button  type="primary" @click="openDeliverDialog">直调发货</el-button>
         <el-popconfirm title="确定关闭吗?" @onConfirm="goBack" style="margin-left: 10px;">
           <el-button slot="reference">关 闭</el-button>
         </el-popconfirm>
       </div>
     </div>
 
-    <el-dialog
-      title="直调发货"
-      :visible.sync="isShowDeliverDialog"
-      width="80%">
-      <el-form ref="deliverForm" :model="deliverForm" label-width="70px" size="small" label-position="left">
-        <el-row :gutter="20">
-          <el-col :xs="24" :sm="8" :lg="8">
-            <el-form-item label="工程订单" prop="orderNum">
-              <el-input v-model="deliverForm.orderNum" placeholder="请输入工程订单"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="8" :lg="8" style="height: 51px;">
-            <el-form-item label="发货日期" prop="date">
-              <el-date-picker
-                v-model="deliverForm.date"
-                type="date"
-                value-format="yyyy-MM-dd"
-                style="width: 100%;"
-                placeholder="选择日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="8" :lg="8">
-            <el-form-item label="发货仓库" prop="warehouse">
-              <el-select v-model="deliverForm.warehouse" placeholder="请选择发货仓库">
-                <el-option
-                  v-for="item in warehouseList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-
-      <div class="table" style="margin-top: 20px">
-        <el-table :data="detailData.kingDeeTransferItems" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
-          <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-          <el-table-column align="center" label="引用记录" prop="materialNumber" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="销售类型" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品编码" prop="model" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="产品名称" prop="baseUnitId" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="规格型号" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单位" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="总数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="是否使用返利" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="返利使用比例" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="是否直调" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="直调数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="已发货数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="单价" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="金额" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="返利" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="备注" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
-        </el-table>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="closeDeliverDialog">取 消</el-button>
-        <el-button type="primary" @click="submitDeliverForm">确 定</el-button>
-      </span>
-    </el-dialog>
-
   </div>
 </template>
 
 <script>
-import print from 'vue-print-nb'
-import { getDetail } from "@/api/supply/apply";
+import { getEnginDetail } from "@/api/supply/apply";
+import { getFileUrl } from '@/api/common';
 
 export default {
   name: 'EnginDetail',
   componentName: 'EnginDetail',
   props: ['listItem'],
-  directives: {
-    print
+  filters: {
+    statusFilter(val) {
+      const statusList = [
+        { label: '已保存', value: 'SAVE' },
+        { label: '待审核', value: 'WAIT' },
+        { label: '审核通过', value: 'OK' },
+        { label: '审核驳回', value: 'FAIL' },
+        { label: '已关闭', value: 'CLOSE' },
+      ];
+      let obj = statusList.find(o => o.value == val);
+      return obj ? obj.label : ''
+    },
+    enginTypeFilter(val) {
+      const MAP = {
+        HOME: '家用',
+        TRADE: '商用',
+      }
+      return MAP[val];
+    }
   },
   data() {
     return {
-      printObj: {
-        id: 'printData'
-      },
+      imageURL: this.$imageUrl,
       detailData: {},
-
-      isShowDeliverDialog: false,
-      deliverForm: {
-        orderNum: '',
-        date: '',
-      },
-      warehouseList: [],
     }
   },
 
@@ -261,6 +211,9 @@ export default {
         openSidebar: this.sidebar.opened
       }
     },
+    isExamine() {
+      return this.detailData.examineStatus === 'OK' || this.detailData.examineStatus === "FAIL"
+    },
   },
 
   created() {
@@ -275,24 +228,36 @@ export default {
 
     // 获取详情
     getDetail() {
-      getDetail({id: this.listItem.id}).then(res => {
+      getEnginDetail({id: this.listItem.id}).then(res => {
         this.detailData = res.data;
       })
     },
 
-    // 打开 直调发货
-    openDeliverDialog() {
-      this.isShowDeliverDialog = true;
-    },
-
-    // 关闭 直调发货
-    closeDeliverDialog() {
-      this.isShowDeliverDialog = false;
-    },
+    // 检查文件类型
+    checkFileType(url) {
+      if(!url) return '';
+			const fileSuffix = url.substring(url.lastIndexOf(".") + 1);
 
-    // 提交 直调发货
-    submitDeliverForm() {
+			if (['jpg', 'jpeg', 'png'].includes(fileSuffix)) {
+				return 'image';
+			}else if (['doc', 'docx', 'dot', 'wps', 'wpt'].includes(fileSuffix)) {
+				return 'word';
+			}else if(['xls', 'xlsx', 'xlt', 'et', 'ett'].includes(fileSuffix)) {
+				return 'excel';
+			}else if(['ppt', 'pptx', 'dps', 'dpt', 'pot', 'pps'].includes(fileSuffix)) {
+				return 'ppt';
+			}else if(['pdf'].includes(fileSuffix)) {
+				return 'pdf';
+			}else {
+        return '';
+      }
+		},
 
+    // 打开链接
+    openLink(url) {
+      getFileUrl({key: url}).then(res => {
+        window.open(res.data);
+      })
     },
 
   }

+ 124 - 87
src/views/supply/apply/components/engin_examine.vue

@@ -3,98 +3,111 @@
     <el-page-header @back="goBack" content="审批"></el-page-header>
 
     <div class="main-title">
-      <div class="title">工程订单</div>
+      <div class="title">工程发货申请单信息</div>
     </div>
 
     <div class="diy-table-1">
       <el-row>
         <el-col :span="8" class="item">
-          <div class="label">单号</div>
-          <div class="value">{{detailData.billNo}}</div>
+          <div class="label">发货申请单号</div>
+          <div class="value">{{detailData.id}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">订单日期</div>
-          <div class="value">{{detailData.fdate}}</div>
+          <div class="label">申请日期</div>
+          <div class="value">{{detailData.createTime}}</div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">单据状态</div>
-          <div class="value">{{detailData.srcStockId}}</div>
+          <div class="value">{{detailData.examineStatus | statusFilter}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">工程登录单号</div>
-          <div class="value">{{detailData.destStockId}}</div>
+          <div class="label">经销商编号</div>
+          <div class="value">{{detailData.customerNumber}}</div>
         </el-col>
-        <el-col :span="8" class="item">
-          <div class="label">项目名称</div>
-          <div class="value">{{detailData.approveDate}}</div>
+        <el-col :span="16" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">{{detailData.customerName}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">单据类型</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">工程登录编码</div>
+          <div class="value">{{detailData.enginOrderNo}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">经销商编码</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">工程项目名称</div>
+          <div class="value">{{detailData.refProjectName}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">使用单位</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">工程登录类型</div>
+          <div class="value">{{detailData.enginOrderType | enginTypeFilter}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">安装地址</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">厂工程编号</div>
+          <div class="value">{{detailData.refFactoryNo}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">工程编号</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">使用单位</div>
+          <div class="value">{{detailData.refUseUnit}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">厂工厂编码</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label"></div>
+          <div class="value"></div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">工程登录类型</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">联系人</div>
+          <div class="value">{{detailData.refLinkman}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">文件编号</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">固定电话</div>
+          <div class="value">{{detailData.refTel}}</div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">制单人</div>
-          <div class="value">{{detailData.approverId}}</div>
-        </el-col>
-        <el-col :span="8" class="item">
-          <div class="label">制单日期</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">移动电话</div>
+          <div class="value">{{detailData.refPhone}}</div>
         </el-col>
         <el-col :span="24" class="item">
-          <div class="label">格力回复</div>
-          <div class="value"><el-input v-model="detailData.remark" placeholder="请输入内容"></el-input></div>
+          <div class="label">安装地址</div>
+          <div class="value">{{detailData.refInstallAddress}}</div>
         </el-col>
         <el-col :span="24" class="item">
-          <div class="label">格力内部备注</div>
-          <div class="value"><el-input v-model="detailData.remark" placeholder="请输入内容"></el-input></div>
+          <div class="label">备注</div>
+          <div class="value">{{detailData.remark}}</div>
+        </el-col>
+        <el-col :span="24" class="item file">
+          <div class="label">附件</div>
+          <div class="value">
+            <div class="file-list">
+              <div class="file-item">
+                <el-image v-if="checkFileType(detailData.fileUrl) == 'image'" class="img" :src="imageURL + detailData.fileUrl" :preview-src-list="[imageURL + detailData.fileUrl]"></el-image>
+                <div v-else class="box2" @click="openLink(detailData.fileUrl)">
+                  <img src="@/assets/common/word.png" v-if="checkFileType(detailData.fileUrl) == 'word'" />
+                  <img src="@/assets/common/excel.png" v-if="checkFileType(detailData.fileUrl) == 'excel'" />
+                  <img src="@/assets/common/ppt.png" v-if="checkFileType(detailData.fileUrl) == 'ppt'" />
+                  <img src="@/assets/common/pdf.png" v-if="checkFileType(detailData.fileUrl) == 'pdf'" />
+                  <div class="name ellipsis-3">{{ detailData.fileName }}</div>
+                </div>
+              </div>
+            </div>
+          </div>
         </el-col>
         <el-col :span="6" class="item">
-          <div class="label">审核人</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">制单人</div>
+          <div class="value">{{detailData.createBy}}</div>
         </el-col>
         <el-col :span="6" class="item">
-          <div class="label">审核日期</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">制单日期</div>
+          <div class="value">{{detailData.createTime}}</div>
         </el-col>
         <el-col :span="6" class="item">
-          <div class="label">关闭人</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">审核人</div>
+          <div class="value">{{detailData.approvalName}}</div>
         </el-col>
         <el-col :span="6" class="item">
-          <div class="label">关闭日期</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">审核日期</div>
+          <div class="value">{{detailData.approvalTime}}</div>
         </el-col>
         <el-col :span="24" class="item">
-          <div class="label">备注</div>
-          <div class="value">{{detailData.approverId}}</div>
+          <div class="label">审批说明</div>
+          <div class="value">{{detailData.approvalRemark}}</div>
         </el-col>
       </el-row>
     </div>
@@ -104,24 +117,27 @@
     </div>
 
     <div class="table" style="margin-top: 20px">
-      <el-table :data="detailData.kingDeeTransferItems" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
+      <el-table :data="detailData.orders" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-        <el-table-column align="center" label="引用记录" prop="materialNumber" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="销售类型" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="产品编码" prop="model" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="产品名称" prop="baseUnitId" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="规格型号" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="单位" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="总数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="是否使用返利" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="返利使用比例" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="是否直调" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="直调数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="已发货数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="单价" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="金额" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="返利" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="备注" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="订单日期" prop="theTime" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="180" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="物料代码" prop="materialOldNumber" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品编码" prop="materialCode" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="申请数量" prop="invoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="审批数量" prop="approvalNumber" min-width="100" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.approvalNumber" size="small" type="number"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.remark" size="small"></el-input>
+          </template>
+        </el-table-column>
       </el-table>
     </div>
 
@@ -132,16 +148,11 @@
       <el-row :gutter="0">
         <el-col :span="12" class="item">
           <div class="label">审批人</div>
-          <div class="value">2022123233435342</div>
+          <div class="value">{{userName}}</div>
         </el-col>
         <el-col :span="12" class="item">
-          <div class="label">审批结果</div>
-          <div class="value">
-            <el-radio-group v-model="examineForm.status">
-              <el-radio :label="true">通过</el-radio>
-              <el-radio :label="false">驳回</el-radio>
-            </el-radio-group>
-          </div>
+          <div class="label">审批日期</div>
+          <div class="value">{{getDate()}}</div>
         </el-col>
         <el-col :span="24" class="item">
           <div class="label">审批说明</div>
@@ -152,12 +163,9 @@
     
     <div class="page-footer">
       <div class="footer" :class="classObj">
-        <el-button type="primary" @click="clickSubmitForm" :loading="formLoading">{{ formLoading ? '提交中 ...' : '提 交' }}</el-button>
-        <el-popconfirm
-          title="确定关闭吗?"
-          @onConfirm="goBack"
-          style="margin-left: 10px;"
-        >
+        <el-button type="primary" @click="clickSubmitForm('OK')">审批通过</el-button>
+        <el-button type="warning" @click="clickSubmitForm('FAIL')">审批驳回</el-button>
+        <el-popconfirm title="确定关闭吗?" @onConfirm="goBack" style="margin-left: 10px;">
           <el-button slot="reference">关 闭</el-button>
         </el-popconfirm>
       </div>
@@ -167,7 +175,7 @@
 </template>
 
 <script>
-import { getDetail } from "@/api/supply/apply";
+import { getEnginDetail, examineEngin } from "@/api/supply/apply";
 
 export default {
   name: 'EnginExamine',
@@ -175,14 +183,10 @@ export default {
   props: ['listItem'],
   data() {
     return {
-      printObj: {
-        id: 'printData'
-      },
       detailData: {},
+      userName: JSON.parse(localStorage.getItem("supply_user")).nickName,
 
-      formLoading: false,
       examineForm: {
-        status: true,
         remark: '',
       }
     }
@@ -205,6 +209,22 @@ export default {
   },
 
   methods: {
+    getDate() {
+      var date = new Date();
+      var seperator1 = "-";
+      var year = date.getFullYear();
+      var month = date.getMonth() + 1;
+      var strDate = date.getDate();
+      if (month >= 1 && month <= 9) {
+          month = "0" + month;
+      }
+      if (strDate >= 0 && strDate <= 9) {
+          strDate = "0" + strDate;
+      }
+      var currentdate = year + seperator1 + month + seperator1 + strDate;
+      return currentdate;
+    },
+
     // 返回列表
     goBack() {
       this.$emit('backListFormDetail');
@@ -212,13 +232,30 @@ export default {
 
     // 获取详情
     getDetail() {
-      getDetail({id: this.listItem.id}).then(res => {
+      getEnginDetail({id: this.listItem.id}).then(res => {
         this.detailData = res.data;
       })
     },
 
-    clickSubmitForm() {
-
+    // 提交审批
+    clickSubmitForm(val) {
+      this.$confirm('此操作将审批订单, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let params = {
+          id: this.detailData.id,
+          examineStatus: val,
+          approvalRemark: this.examineForm.remark,
+          orders: this.detailData.orders,
+        };
+        examineEngin(params).then(res => {
+          this.$successMsg();
+          this.goBack();
+          this.$parent.getList();
+        })
+      }).catch(() => {});
     },
 
   }

+ 195 - 60
src/views/supply/apply/components/engin_form.vue

@@ -3,22 +3,22 @@
     <el-page-header @back="goBack" :content="listItem ? '编辑':'新增'"></el-page-header>
 
     <div class="main-title">
-      <div class="title">发货申请单信息</div>
+      <div class="title">工程发货申请单信息</div>
     </div>
 
     <div style="font-size: 12px; color: #333; margin-bottom: 20px;">注:发货申请时,库存数量为实时数量,请选择完成选择后及时保存提交,否则数量可能有变,被其他商家开单而导致库存不足。</div>
 
-    <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-width="90px" size="small" label-position="right">
+    <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-width="100px" size="small" label-position="right">
       <el-row :gutter="20">
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="订单号" prop="id">
+          <el-form-item label="发货申请单" prop="orderNum">
             <el-input v-model="mainForm.orderNum" placeholder="系统自动生成" readonly></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
-          <el-form-item label="单据日期" prop="date">
+          <el-form-item label="单据日期" prop="orderDate">
             <el-date-picker
-              v-model="mainForm.date"
+              v-model="mainForm.orderDate"
               type="date"
               value-format="yyyy-MM-dd"
               style="width: 100%;"
@@ -26,11 +26,8 @@
             </el-date-picker>
           </el-form-item>
         </el-col>
-        <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="制单人" prop="createMan">
-            <el-input v-model="mainForm.createMan" readonly></el-input>
-          </el-form-item>
-        </el-col>
+      </el-row>
+      <el-row :gutter="20">
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="经销商编号" prop="jxsNum">
             <el-input v-model="mainForm.jxsNum" readonly></el-input>
@@ -41,17 +38,87 @@
             <el-input v-model="mainForm.jxsName" readonly></el-input>
           </el-form-item>
         </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="工程登录编号" prop="loginNum">
+            <el-input v-model="mainForm.loginNum" placeholder="请输入工程登录编号"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="工程项目名称" prop="enginName">
+            <el-input v-model="mainForm.enginName" placeholder="请输入工程项目名称"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="工程登录类型" prop="loginType">
+            <el-input v-model="mainForm.loginType" placeholder="请输入工程登录类型"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="厂工程编号" prop="factoryNum">
+            <el-input v-model="mainForm.factoryNum" placeholder="请输入厂工程编号"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="使用单位" prop="company">
+            <el-input v-model="mainForm.company" placeholder="请输入使用单位"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="联系人" prop="contactMan">
+            <el-input v-model="mainForm.contactMan" placeholder="请输入联系人" readonly></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="固定电话" prop="tel">
+            <el-input v-model="mainForm.tel" placeholder="请输入固定电话" readonly></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="移动电话" prop="phone">
+            <el-input v-model="mainForm.phone" placeholder="请输入移动电话" readonly></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="24">
+          <el-form-item label="安装地址" prop="address">
+            <el-input v-model="mainForm.address" placeholder="请输入安装地址"></el-input>
+          </el-form-item>
+        </el-col>
         <el-col :xs="24" :sm="24" :lg="24">
           <el-form-item label="备注" prop="remark">
             <el-input v-model="mainForm.remark" placeholder="请输入备注"></el-input>
           </el-form-item>
         </el-col>
+      </el-row>
+      <el-row :gutter="20">
         <el-col :xs="24" :sm="8" :lg="8">
           <el-form-item label="附件" prop="fileUrl">
             <fileUpload :fileList="fileList" />
           </el-form-item>
         </el-col>
       </el-row>
+      <el-row :gutter="20">
+        <el-col :xs="24" :sm="12" :lg="8">
+          <el-form-item label="制单人" prop="createMan">
+            <el-input v-model="mainForm.createMan" readonly></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
+          <el-form-item label="制单日期" prop="createDate">
+            <el-date-picker
+              v-model="mainForm.createDate"
+              readonly
+              type="datetime"
+              value-format="yyyy-MM-dd hh:mm:ss"
+              style="width: 100%;"
+              placeholder="选择日期">
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+      </el-row>
     </el-form>
 
     <div class="main-title">
@@ -70,18 +137,16 @@
       <el-table :data="goodsList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
         <el-table-column align="center" label="引用单号" prop="orderId" min-width="180" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="单号类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="数量" prop="qty" min-width="80" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="申请数量" prop="invoiceNum" min-width="110" show-overflow-tooltip>
+        <el-table-column align="center" label="数量" prop="invoiceNum" min-width="110" show-overflow-tooltip>
           <template slot-scope="scope">
             <el-input v-model="scope.row.invoiceNum" size="small"></el-input>
           </template>
         </el-table-column>
-        <el-table-column align="center" label="已申请数量" prop="alreadyInvoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="未申请数量" prop="refundableQty" min-width="100" show-overflow-tooltip> </el-table-column>
         <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
             <el-input v-model="scope.row.remark" size="small"></el-input>
@@ -106,28 +171,44 @@
     </div>
 
     <el-dialog title="添加产品" :visible.sync="isShowDialog" width="80%">
-      <el-form ref="screenForm" :model="screenForm" size="small" label-position="left" label-width="70px">
+      <el-form ref="screenForm" :model="screenForm" size="small" label-position="left" label-width="100px">
         <el-row :gutter="20">
-          <el-col :xs="12" :sm="6" :lg="6">
-            <el-form-item prop="warehouse" label="选择仓库">
-              <el-select v-model="screenForm.warehouse" placeholder="请选择仓库" size="small" filterable clearable :disabled="goodsList.length > 0 || tableSelection.length > 0">
-                <el-option :label="item.name" :value="item.id" v-for="(item, index) in warehouseList" :key="index"></el-option>
-              </el-select>
+          <el-col :xs="12" :sm="12" :lg="6">
+            <el-form-item prop="loginNum" label="工程登录编号">
+              <el-input v-model="screenForm.loginNum" placeholder="请输入工程登录编号"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :xs="12" :sm="6" :lg="6">
-            <el-form-item prop="type" label="产品大类">
-              <el-select v-model="screenForm.type" placeholder="选择产品大类" style="width: 100%" :disabled="goodsList.length > 0 || tableSelection.length > 0">
-                <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
-              </el-select>
+          <el-col :xs="12" :sm="12" :lg="6">
+            <el-form-item prop="enginName" label="工程名称">
+              <el-input v-model="screenForm.enginName" placeholder="请输入工程名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="6">
+            <el-form-item prop="model" label="规格型号">
+              <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :xs="12" :sm="6" :lg="6">
-            <el-form-item prop="orderNum" label="订单号">
-              <el-input v-model="screenForm.orderNum" placeholder="请输入订单号"></el-input>
+          <el-col :xs="12" :sm="12" :lg="6">
+            <el-form-item label="发货申请日期" prop="date">
+              <el-date-picker
+                v-model="screenForm.date"
+                type="datetimerange"
+                range-separator="至"
+                style="width: 100%; height: 33px"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期">
+              </el-date-picker>
             </el-form-item>
           </el-col>
-          <el-col :xs="12" :sm="6" :lg="6" class="tr">
+          <el-col :xs="12" :sm="12" :lg="6">
+            <el-form-item prop="warehouse" label="选择仓库">
+              <el-select v-model="screenForm.warehouse" placeholder="请选择仓库" size="small" filterable clearable :disabled="goodsList.length > 0 || tableSelection.length > 0">
+                <el-option :label="item.name" :value="item.id" v-for="(item, index) in warehouseList" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="18" class="tr">
             <el-form-item label="">
               <el-button size="small" @click="resetScreenForm">清空</el-button>
               <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
@@ -139,25 +220,36 @@
       <div class="table">
         <el-table :data="tableGoodsList" element-loading-text="Loading" border fit highlight-current-row stripe height="400" @selection-change="tableSelectionChange">
           <el-table-column align="center" type="selection" width="55" :selectable='checkboxSelect'></el-table-column>
-          <el-table-column align="center" label="订单号" prop="orderId" min-width="180" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="订单类型" prop="orderType" min-width="180" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{scope.row.orderType | orderTypeFilter}}
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="工程登录编号" prop="enginOrderNo" min-width="180" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="物料代码" prop="materialOldNumber" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="单位" prop="unit" min-width="80" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="数量" prop="qty" min-width="80" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="订单数量" prop="qty" min-width="80" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="已申请数量" prop="alreadyInvoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="未申请数量" prop="refundableQty" min-width="100" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="本次申请数量" prop="invoiceNum" min-width="110" show-overflow-tooltip>
             <template slot-scope="scope">
               <el-input v-model="scope.row.invoiceNum" size="small"></el-input>
             </template>
           </el-table-column>
-          <el-table-column align="center" label="已申请数量" prop="alreadyInvoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="未申请数量" prop="refundableQty" min-width="100" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="总库存数量" prop="stockAdequate" min-width="100" show-overflow-tooltip>
             <template slot-scope="scope">
               {{scope.row.stockAdequate | stockFilter}}
             </template>
           </el-table-column>
-          <el-table-column align="center" label="对应库存数量" prop="stockCorrespond" min-width="110" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="对应库存数量" prop="stockCorrespond" min-width="110" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{scope.row.stockCorrespond | stockFilter}}
+            </template>
+          </el-table-column>
         </el-table>
         <div class="pagination clearfix" style="margin-top: 10px">
           <div class="fr">
@@ -183,7 +275,7 @@
 </template>
 
 <script>
-import { getApplyDetail, addApply, editApply, getGoodsList, getWarehouseList, getDealerList } from "@/api/supply/apply";
+import { getEnginDetail, addEngin, editEngin, getEnginGoodsList, getWarehouseList, getDealerList } from "@/api/supply/apply";
 import { getDictList } from '@/api/common'
 import { findElem } from '@/utils/util'
 import fileUpload from '@/components/Common/file-upload.vue'
@@ -192,32 +284,43 @@ export default {
   components: {
     fileUpload
   },
-  name: 'ApplyForm',
-  componentName: 'ApplyForm',
+  name: 'EnginForm',
+  componentName: 'EnginForm',
   props: ['listItem'],
   filters: {
+    orderTypeFilter(val) {
+      
+    },
     stockFilter(val) {
-      const MAP = {
-        0: '不充足',
-        1: '充足'
+      if(val > 50) {
+        return '充足';
+      }else {
+        return '紧缺';
       }
-      return MAP[val]
     }
   },
   data() {
     return {
       mainForm: {
         orderNum: '',
-        date: '',
+        orderDate: '',
         jxsNum: '',
         jxsName: '',
+        loginNum: '',
+        enginName: '',
+        loginType: '',
+        factoryNum: '',
+        company: '',
+        contactMan: '',
+        tel: '',
+        phone: '',
+        address: '',
         remark: '',
         createMan: '',
+        createDate: '',
       },
       mainFormRules: {
-        date: [
-          { required: true, message: '请选择单据日期', trigger: 'change' }
-        ],
+        orderDate: [{ required: true, message: '请选择单据日期', trigger: 'change' }],
       },
       dealerList: [],
       fileList: [],
@@ -226,9 +329,11 @@ export default {
       warehouseList: [],
       isShowDialog: false,
       screenForm: {
+        loginNum: '',
+        enginName: '',
+        model: '',
+        date: '',
         warehouse: '',
-        type: '',
-        orderNum: '',
       },
       currentPage: 1,
       listTotal: 0,
@@ -261,6 +366,7 @@ export default {
       this.mainForm.jxsNum = JSON.parse(localStorage.getItem("supply_user")).customerId;
       this.mainForm.jxsName = JSON.parse(localStorage.getItem("supply_user")).customerName;
       this.mainForm.createMan = JSON.parse(localStorage.getItem("supply_user")).nickName;
+      this.mainForm.createDate = this.getDate();
     }
   },
 
@@ -270,9 +376,25 @@ export default {
       this.$emit('backListFormDetail');
     },
 
+    getDate() {
+      var date = new Date();
+      var seperator1 = "-";
+      var year = date.getFullYear();
+      var month = date.getMonth() + 1;
+      var strDate = date.getDate();
+      if (month >= 1 && month <= 9) {
+          month = "0" + month;
+      }
+      if (strDate >= 0 && strDate <= 9) {
+          strDate = "0" + strDate;
+      }
+      var currentdate = year + seperator1 + month + seperator1 + strDate;
+      return currentdate;
+    },
+
     // 获取详情
     getDetail() {
-      getApplyDetail({id: this.listItem.id}).then(res => {
+      getEnginDetail({id: this.listItem.id}).then(res => {
         let data = res.data;
         this.mainForm.orderNum = data.id;
         this.mainForm.date = data.orderTime;
@@ -321,12 +443,15 @@ export default {
 
     // 获取商品列表
     getGoodsList() {
-      getGoodsList({
+      getEnginGoodsList({
         pageNum: this.currentPage,
         pageSize: 10,
+        enginOrderNo: this.screenForm.loginNum,
+        refProjectName: this.screenForm.enginName,
+        specification: this.screenForm.model,
+        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
+        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
         correspondId: this.screenForm.warehouse,
-        mainId: this.screenForm.type,
-        id: this.screenForm.orderNum,
       }).then(res => {
         res.data.records.forEach(item => {
           item.mainOrderId = item.id;
@@ -366,15 +491,13 @@ export default {
         return this.$errorMsg('请选择仓库');
       }
       this.isShowDialog = true;
-      if(this.screenForm.warehouse && this.screenForm.type) {
-        this.getGoodsList();
-      }
+      this.getGoodsList();
     },
 
     // 提交筛选表单
     submitScreenForm() {
-      if(!this.screenForm.warehouse || !this.screenForm.type) {
-        return this.$errorMsg('请选择仓库和产品大类');
+      if(!this.screenForm.warehouse) {
+        return this.$errorMsg('请选择仓库');
       }
       this.currentPage = 1;
       this.getGoodsList();
@@ -469,28 +592,40 @@ export default {
               return;
             }
           }
+          if(!this.screenForm.warehouse) {
+            return this.$errorMsg('请选择仓库');
+          }
 
           let correspondName = this.warehouseList[findElem(this.warehouseList, 'id', this.screenForm.warehouse)].name;
           let params = {
-            id: this.listItem ? this.listItem.id : '',
             orderTime: this.mainForm.date + ' 00:00:00',
             remark: this.mainForm.remark,
+            enginOrderNo: this.mainForm.loginNum,
+            refProjectName: this.mainForm.enginName,
+            enginOrderType: this.mainForm.loginType,
+            refFactoryNo: this.mainForm.factoryNum,
+            refUseUnit: this.mainForm.company,
+            refLinkman: this.mainForm.contactMan,
+            refTel: this.mainForm.tel,
+            refPhone: this.mainForm.phone,
+            refInstallAddress: this.mainForm.address,
+            remark: this.mainForm.remark,
             fileUrl: this.fileList && this.fileList.length > 0 ? this.fileList[0].url : '',
             fileName: this.fileList && this.fileList.length > 0 ? this.fileList[0].name : '',
-            orderType: 1, // 1零售单 2家用工程 3商用工程
             correspondId: this.screenForm.warehouse,
             correspondName,
             orders: this.goodsList,
             examineStatus: status,
           }
           if(this.listItem) {
-            editApply(params).then(res => {
+            params.id = this.listItem.id;
+            editEngin(params).then(res => {
               this.$successMsg('编辑成功');
               this.goBack();
               this.$parent.getList();
             })
           }else {
-            addApply(params).then(res => {
+            addEngin(params).then(res => {
               this.$successMsg('添加成功');
               this.goBack();
               this.$parent.getList();

+ 3 - 3
src/views/supply/apply/engin_list.vue

@@ -81,9 +81,9 @@
             <el-table-column align="center" label="发货申请单" prop="id" min-width="180" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="发货申请日期" prop="createTime" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="仓库" prop="correspondName" min-width="120" show-overflow-tooltip></el-table-column>
-            <el-table-column align="center" label="工程登录编码" prop="aaa" min-width="120" show-overflow-tooltip></el-table-column>
-            <el-table-column align="center" label="工程名称" prop="aaa" min-width="120" show-overflow-tooltip></el-table-column>
-            <el-table-column align="center" label="使用单位" prop="aaa" min-width="120" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="工程登录编码" prop="enginOrderNo" min-width="120" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="工程名称" prop="refProjectName" min-width="120" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="使用单位" prop="refUseUnit" min-width="120" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="经销商编码" prop="customerNumber" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="经销商名称" prop="customerName" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>

+ 97 - 88
src/views/supply/engin/components/commerce_form.vue

@@ -10,7 +10,7 @@
       <el-row :gutter="20">
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="工程订单" prop="orderNum">
-            <el-input v-model="mainForm.orderNum" placeholder="系统自动生成" readonly></el-input>
+            <el-input v-model="mainForm.orderNum" placeholder="系统自动生成" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
@@ -26,37 +26,37 @@
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="产品大类" prop="type">
-            <el-select v-model="mainForm.type" placeholder="选择产品大类" style="width: 100%" clearable>
+            <el-select v-model="mainForm.type" placeholder="选择产品大类" style="width: 100%" disabled>
               <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="经销商编码" prop="jxsNum">
-            <el-input v-model="mainForm.jxsNum" placeholder="请输入经销商编码" readonly></el-input>
+            <el-input v-model="mainForm.jxsNum" placeholder="请输入经销商编码" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="16">
           <el-form-item label="经销商名称" prop="jxsName">
-            <el-input v-model="mainForm.jxsName" placeholder="请输入经销商名称" readonly></el-input>
+            <el-input v-model="mainForm.jxsName" placeholder="请输入经销商名称" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="工程登录编号" prop="loginNum">
+          <el-form-item label="工程信息单号" prop="enginNum">
             <div style="display: flex;">
-              <el-input v-model="mainForm.loginNum" placeholder="请选择工程登录" readonly></el-input>
-              <el-button style="margin-left: 10px;" @click="openShareDetail" :disabled="mainForm.loginNum !== ''">选择</el-button>
+              <el-input v-model="mainForm.enginNum" placeholder="请选择工程登录" disabled></el-input>
+              <el-button style="margin-left: 10px;" @click="openShareDetail">选择</el-button>
             </div>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="工程项目名称" prop="enginName">
-            <el-input v-model="mainForm.enginName" placeholder="请输入工程项目名称"></el-input>
+            <el-input v-model="mainForm.enginName" placeholder="请输入工程项目名称" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="工程登录类型" prop="loginType">
-            <el-input v-model="mainForm.loginType" placeholder="请输入工程登录类型"></el-input>
+            <el-input v-model="mainForm.loginType" placeholder="请输入工程登录类型" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
@@ -66,34 +66,29 @@
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="使用单位" prop="company">
-            <el-input v-model="mainForm.company" placeholder="请输入使用单位"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :xs="24" :sm="12" :lg="8">
-          <el-form-item label="销售类型" prop="saleType">
-            <el-select v-model="mainForm.saleType" placeholder="选择销售类型" style="width: 100%" clearable @change="changeSaleType">
-              <el-option v-for="item in salesTypeList" :key="item.id" :label="item.saleName" :value="item.id"></el-option>
-            </el-select>
+            <el-input v-model="mainForm.company" placeholder="请输入使用单位" disabled></el-input>
           </el-form-item>
         </el-col>
+      </el-row>
+      <el-row :gutter="20">
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="联系人" prop="contactMan">
-            <el-input v-model="mainForm.contactMan" placeholder="请输入联系人"></el-input>
+            <el-input v-model="mainForm.contactMan" placeholder="请输入联系人" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="固定电话" prop="tel">
-            <el-input v-model="mainForm.tel" placeholder="请输入固定电话"></el-input>
+            <el-input v-model="mainForm.tel" placeholder="请输入固定电话" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="移动电话" prop="phone">
-            <el-input v-model="mainForm.phone" placeholder="请输入移动电话"></el-input>
+            <el-input v-model="mainForm.phone" placeholder="请输入移动电话" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24">
           <el-form-item label="安装地址" prop="address">
-            <el-input v-model="mainForm.address" placeholder="请输入安装地址"></el-input>
+            <el-input v-model="mainForm.address" placeholder="请输入安装地址" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24">
@@ -113,14 +108,14 @@
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="制单人" prop="createMan">
-            <el-input v-model="mainForm.createMan" placeholder="请输入制单人" readonly></el-input>
+            <el-input v-model="mainForm.createMan" placeholder="请输入制单人" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
           <el-form-item label="制单日期" prop="createDate">
             <el-date-picker
               v-model="mainForm.createDate"
-              readonly
+              disabled
               type="date"
               value-format="yyyy-MM-dd"
               style="width: 100%;"
@@ -212,13 +207,13 @@
             <el-checkbox v-model="scope.row.isDirectTransfer"></el-checkbox>
           </template>
         </el-table-column>
-        <el-table-column align="center" label="直调数量" prop="directTransferQty" min-width="100">
+        <el-table-column align="center" label="直调数量" prop="directTransferQty" min-width="100"></el-table-column>
+        <el-table-column align="center" label="已发货数量" prop="hasSendQty" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-input v-model="scope.row.directTransferQty" size="small"></el-input>
+            <el-input v-model="scope.row.remark" size="small"></el-input>
           </template>
         </el-table-column>
-        <el-table-column align="center" label="已发货数量" prop="hasSendQty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="税率" prop="tax" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="总仓库" prop="status1" min-width="100" show-overflow-tooltip>
           <template slot-scope="scope">
@@ -253,8 +248,8 @@
       <el-form ref="screenForm" :model="screenForm" label-width="0" size="small" label-position="left">
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
-            <el-form-item prop="loginNum">
-              <el-input v-model="screenForm.loginNum" placeholder="工程登录编号"></el-input>
+            <el-form-item prop="enginNum">
+              <el-input v-model="screenForm.enginNum" placeholder="工程信息单"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
@@ -286,11 +281,11 @@
           max-height="270">
           <el-table-column align="center" label="" width="100">
             <template slot-scope="scope">
-              <el-button type="primary" size="small" @click="chooseItem(scope.row.recordNo)">选择</el-button>
+              <el-button type="primary" size="small" @click="chooseItem(scope.row.enginInfoNo)">选择</el-button>
             </template>
           </el-table-column>
           <el-table-column align="center" prop="checkTime" label="工程登录日期" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" prop="recordNo" label="工程登录编号" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" prop="enginInfoNo" label="工程信息单" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" prop="projectName" label="工程项目" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" prop="useUnit" label="使用单位" show-overflow-tooltip></el-table-column>
         </el-table>
@@ -317,7 +312,7 @@
 </template>
 
 <script>
-import { getOrderDetail, getComLoginList, getWarehouseList, addCom, editCom, submitCom, checkStock, getWalletList } from "@/api/supply/engin";
+import { getOrderDetail, getComLoginList, getComLoginDetail, getWarehouseList, addCom, editCom, submitCom, checkStock, getWalletList } from "@/api/supply/engin";
 import { getDictList, getTypeList } from '@/api/common'
 
 export default {
@@ -342,12 +337,11 @@ export default {
         type: '',
         jxsNum: '',
         jxsName: '',
-        loginNum: '',
+        enginNum: '',
         enginName: '',
         loginType: '',
         factoryNum: '',
         company: '',
-        saleType: '',
         contactMan: '',
         tel: '',
         phone: '',
@@ -363,23 +357,21 @@ export default {
         orderDate: [{ required: true, message: '请选择单据日期', trigger: 'change' }],
         jxsNum: [{ required: true, message: '请输入经销商编码', trigger: 'blur' }],
         jxsName: [{ required: true, message: '请输入经销商名称', trigger: 'blur' }],
-        loginNum: [{ required: true, message: '请输入工程登录编号', trigger: 'blur' }],
+        enginNum: [{ required: true, message: '请输入工程登录编号', trigger: 'blur' }],
         enginName: [{ required: true, message: '请输入工程项目名称', trigger: 'blur' }],
         loginType: [{ required: true, message: '请输入工程登录类型', trigger: 'blur' }],
         company: [{ required: true, message: '请输入使用单位', trigger: 'blur' }],
-        saleType: [{ required: true, message: '请选择销售类型', trigger: 'change' }],
         // contactMan: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
         // tel: [{ required: true, message: '请输入固定电话', trigger: 'blur' }],
         // phone: [{ required: true, message: '请输入移动电话', trigger: 'blur' }],
         address: [{ required: true, message: '请输入安装地址', trigger: 'blur' }],
       },
-      salesTypeList: [],
       typeList: [],
       goodsList: [],
 
       isShowDialog: false, // 工程登录列表 - 弹窗
       screenForm: {
-        loginNum: '',
+        enginNum: '',
         enginName: '',
         company: '',
       },
@@ -412,7 +404,6 @@ export default {
   created() {
     this.getDictList();
     this.getWalletList();
-    this.getSalesTypeList();
     this.getWarehouseList();
 
     if(this.listItem) {
@@ -471,16 +462,6 @@ export default {
       })
     },
 
-    // 获取销售类型列表
-    getSalesTypeList() {
-      getTypeList({
-        pageNum: 1,
-        pageSize: -1
-      }).then((res) => {
-        this.salesTypeList = res.data.records;
-      })
-    },
-
     // 获取仓库列表
     getWarehouseList() {
       getWarehouseList({
@@ -497,18 +478,18 @@ export default {
         let data = res.data;
         this.mainForm.orderNum = data.enginOrderId;
         this.mainForm.orderDate = data.orderDate;
-        this.mainForm.type = data.refProductCategory;
+        this.mainForm.type = data.mainId;
         this.mainForm.jxsNum = data.customerId;
         this.mainForm.jxsName = data.customerName;
-        this.mainForm.loginNum = data.refEnginRecordNo;
+        this.mainForm.enginNum = data.refEnginRecordNo;
         this.mainForm.enginName = data.refProjectName;
         this.mainForm.loginType = data.refPromiseStatus;
         this.mainForm.factoryNum = data.refFactoryNo;
         this.mainForm.company = data.refUseUnit;
         this.mainForm.saleType = data.saleTypeId;
-        this.mainForm.contactMan = data.aaa;
-        this.mainForm.tel = data.aaa;
-        this.mainForm.phone = data.aaa;
+        this.mainForm.contactMan = data.refLinkman;
+        this.mainForm.tel = data.refTel;
+        this.mainForm.phone = data.refPhone;
         this.mainForm.address = data.refInstallAddress;
         this.mainForm.greeRemark = data.note2;
         this.mainForm.greeReply = data.note1;
@@ -530,7 +511,7 @@ export default {
       getComLoginList({
         pageNum: this.dialogTable_currentPage,
         pageSize: this.dialogTable_pageSize,
-        recordNo: this.screenForm.loginNum,
+        enginInfoNo: this.screenForm.enginNum,
         projectName: this.screenForm.enginName,
         useUnit: this.screenForm.company,
       }).then(res => {
@@ -568,20 +549,45 @@ export default {
 
     // 选择工程登录
     chooseItem(id) {
-      addCom({refEnginRecordNo: id}).then(res => {
+      getComLoginDetail({id}).then(res => {
         this.isShowDialog = false;
-        this.editId = res.data;
-        this.getDetail();
-      })
-    },
-
-    // 选择销售类型
-    changeSaleType() {
-      let obj = this.salesTypeList.find(o => o.id == this.mainForm.saleType);
-      this.goodsList.forEach(item => {
-        item.saleTypeId = obj.id;
-        item.saleTypeCode= obj.saleCode;
-        item.saleTypeName = obj.saleName;
+        let data = res.data;
+        this.mainForm.type = data.productCategory;
+        this.mainForm.saleType = '';
+        this.mainForm.enginNum = data.enginInfoNo;
+        this.mainForm.enginName = data.projectName;
+        this.mainForm.loginType = data.promiseStatus;
+        this.mainForm.company = data.useUnit;
+        this.mainForm.contactMan = data.buyUnitCallMen;
+        this.mainForm.tel = data.buyUnitTel;
+        this.mainForm.phone = data.buyUnitPhone;
+        this.mainForm.address = data.installAddress;
+
+        this.goodsList = data.items.map(item => {
+          return {
+            useRefCount: '',
+            saleTypeName: '',
+            materialNumber: '',
+            materialOldNumber: item.code,
+            materialName: item.name,
+            specification: item.machine,
+            baseUnitId: '',
+            price: item.price,
+            enginNum: '',
+            qty: item.num,
+            customerWalletId2: '',
+            rebateRate: '',
+            discAmount: '',
+            customerWalletId: '',
+            isDirectTransfer: false,
+            directTransferQty: '',
+            hasSendQty: '',
+            remark: item.discri,
+            tax: '',
+            status1: '',
+            status2: '',
+          }
+        })
       })
     },
 
@@ -647,25 +653,20 @@ export default {
     clickSubmitForm(type) {
       this.$refs.mainForm.validate((valid) => {
         if (valid) {
-          let saleTypeItem = this.salesTypeList.find(o => o.id == this.mainForm.saleType);
+          for(let i=0; i<this.goodsList.length; i++) {
+            if(!this.goodsList[i].customerWalletId) {
+              this.$errorMsg('请选择现金钱包');
+              return;
+            }
+          }
+
           let params = {
             enginOrderId: this.mainForm.orderNum,
             orderDate: this.mainForm.orderDate,
-            refProductCategory: this.mainForm.type || '',
-            // customerId: this.mainForm.jxsNum,
-            // customerName: this.mainForm.jxsName,
-            refEnginRecordNo: this.mainForm.loginNum || '',
-            refProjectName: this.mainForm.enginName || '',
-            refPromiseStatus: this.mainForm.loginType || '',
+            mainId: this.mainForm.type || '',
+            refEnginRecordNo: this.mainForm.enginNum || '',
             refFactoryNo: this.mainForm.factoryNum || '',
-            refUseUnit: this.mainForm.company || '',
-            saleTypeId: this.mainForm.saleType,
-            saleTypeCode: saleTypeItem.saleCode,
-            saleTypeName: saleTypeItem.saleName,
-            // aaa: this.mainForm.contactMan,
-            // aaa: this.mainForm.tel,
-            // aaa: this.mainForm.phone,
-            refInstallAddress: this.mainForm.address || '',
+            buyUnitPhone: this.mainForm.phone,
             note2: this.mainForm.greeRemark || '',
             note1: this.mainForm.greeReply || '',
             remark: this.mainForm.remark || '',
@@ -673,11 +674,19 @@ export default {
             items: this.goodsList,
           }
           if(type === 1) {
-            editCom(params).then(res => {
-              this.$successMsg('编辑成功');
-              this.goBack();
-              this.$parent.getList();
-            })
+            if(this.listItem) {
+              editCom(params).then(res => {
+                this.$successMsg('编辑成功');
+                this.goBack();
+                this.$parent.getList();
+              })
+            }else {
+              addCom(params).then(res => {
+                this.$successMsg('新增成功');
+                this.goBack();
+                this.$parent.getList();
+              })
+            }
           }else if(type === 2) {
             submitCom(params).then(res => {
               this.$successMsg('提交审核成功');

+ 85 - 42
src/views/supply/engin/components/home_form.vue

@@ -10,7 +10,7 @@
       <el-row :gutter="20">
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="工程订单" prop="orderNum">
-            <el-input v-model="mainForm.orderNum" placeholder="系统自动生成" readonly></el-input>
+            <el-input v-model="mainForm.orderNum" placeholder="系统自动生成" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
@@ -26,37 +26,38 @@
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="产品大类" prop="type">
-            <el-select v-model="mainForm.type" placeholder="选择产品大类" style="width: 100%" clearable>
+            <el-input v-model="mainForm.type" disabled v-if="listItem"></el-input>
+            <el-select v-model="mainForm.type" placeholder="选择产品大类" style="width: 100%" disabled v-else>
               <el-option v-for="item in typeList" :key="item.dictCode" :label="item.dictValue" :value="item.dictCode"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="经销商编码" prop="jxsNum">
-            <el-input v-model="mainForm.jxsNum" placeholder="请输入经销商编码" readonly></el-input>
+            <el-input v-model="mainForm.jxsNum" placeholder="请输入经销商编码" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="16">
           <el-form-item label="经销商名称" prop="jxsName">
-            <el-input v-model="mainForm.jxsName" placeholder="请输入经销商名称" readonly></el-input>
+            <el-input v-model="mainForm.jxsName" placeholder="请输入经销商名称" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="工程登录编号" prop="loginNum">
             <div style="display: flex;">
-              <el-input v-model="mainForm.loginNum" placeholder="请选择工程登录" readonly></el-input>
-              <el-button style="margin-left: 10px;" @click="openShareDetail" :disabled="mainForm.loginNum !== ''">选择</el-button>
+              <el-input v-model="mainForm.loginNum" placeholder="请选择工程登录" disabled></el-input>
+              <el-button style="margin-left: 10px;" @click="openShareDetail">选择</el-button>
             </div>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="工程项目名称" prop="enginName">
-            <el-input v-model="mainForm.enginName" placeholder="请输入工程项目名称"></el-input>
+            <el-input v-model="mainForm.enginName" placeholder="请输入工程项目名称" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="工程登录类型" prop="loginType">
-            <el-input v-model="mainForm.loginType" placeholder="请输入工程登录类型"></el-input>
+            <el-input v-model="mainForm.loginType" placeholder="请输入工程登录类型" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
@@ -66,7 +67,7 @@
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="使用单位" prop="company">
-            <el-input v-model="mainForm.company" placeholder="请输入使用单位"></el-input>
+            <el-input v-model="mainForm.company" placeholder="请输入使用单位" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
@@ -78,22 +79,22 @@
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="联系人" prop="contactMan">
-            <el-input v-model="mainForm.contactMan" placeholder="请输入联系人"></el-input>
+            <el-input v-model="mainForm.contactMan" placeholder="请输入联系人" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="固定电话" prop="tel">
-            <el-input v-model="mainForm.tel" placeholder="请输入固定电话"></el-input>
+            <el-input v-model="mainForm.tel" placeholder="请输入固定电话" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="移动电话" prop="phone">
-            <el-input v-model="mainForm.phone" placeholder="请输入移动电话"></el-input>
+            <el-input v-model="mainForm.phone" placeholder="请输入移动电话" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24">
           <el-form-item label="安装地址" prop="address">
-            <el-input v-model="mainForm.address" placeholder="请输入安装地址"></el-input>
+            <el-input v-model="mainForm.address" placeholder="请输入安装地址" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="24" :lg="24">
@@ -113,14 +114,14 @@
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8">
           <el-form-item label="制单人" prop="createMan">
-            <el-input v-model="mainForm.createMan" placeholder="请输入制单人" readonly></el-input>
+            <el-input v-model="mainForm.createMan" placeholder="请输入制单人" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :xs="24" :sm="12" :lg="8" style="height: 51px;">
           <el-form-item label="制单日期" prop="createDate">
             <el-date-picker
               v-model="mainForm.createDate"
-              readonly
+              disabled
               type="date"
               value-format="yyyy-MM-dd"
               style="width: 100%;"
@@ -212,13 +213,13 @@
             <el-checkbox v-model="scope.row.isDirectTransfer"></el-checkbox>
           </template>
         </el-table-column>
-        <el-table-column align="center" label="直调数量" prop="directTransferQty" min-width="100">
+        <el-table-column align="center" label="直调数量" prop="directTransferQty" min-width="100"></el-table-column>
+        <el-table-column align="center" label="已发货数量" prop="hasSendQty" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-input v-model="scope.row.directTransferQty" size="small"></el-input>
+            <el-input v-model="scope.row.remark" size="small"></el-input>
           </template>
         </el-table-column>
-        <el-table-column align="center" label="已发货数量" prop="hasSendQty" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="税率" prop="tax" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="总仓库" prop="status1" min-width="100" show-overflow-tooltip>
           <template slot-scope="scope">
@@ -317,7 +318,7 @@
 </template>
 
 <script>
-import { getOrderDetail, getHomeLoginList, getWarehouseList, addHome, editHome, submitHome, checkStock, getWalletList } from "@/api/supply/engin";
+import { getOrderDetail, getHomeLoginList, getHomeLoginDetail, getWarehouseList, addHome, editHome, submitHome, checkStock, getWalletList } from "@/api/supply/engin";
 import { getDictList, getTypeList } from '@/api/common'
 
 export default {
@@ -497,7 +498,7 @@ export default {
         let data = res.data;
         this.mainForm.orderNum = data.enginOrderId;
         this.mainForm.orderDate = data.orderDate;
-        this.mainForm.type = data.refProductCategory;
+        this.mainForm.type = data.mainId;
         this.mainForm.jxsNum = data.customerId;
         this.mainForm.jxsName = data.customerName;
         this.mainForm.loginNum = data.refEnginRecordNo;
@@ -506,9 +507,9 @@ export default {
         this.mainForm.factoryNum = data.refFactoryNo;
         this.mainForm.company = data.refUseUnit;
         this.mainForm.saleType = data.saleTypeId;
-        this.mainForm.contactMan = data.aaa;
-        this.mainForm.tel = data.aaa;
-        this.mainForm.phone = data.aaa;
+        this.mainForm.contactMan = data.refLinkman;
+        this.mainForm.tel = data.refTel;
+        this.mainForm.phone = data.refPhone;
         this.mainForm.address = data.refInstallAddress;
         this.mainForm.greeRemark = data.note2;
         this.mainForm.greeReply = data.note1;
@@ -568,10 +569,45 @@ export default {
 
     // 选择工程登录
     chooseItem(id) {
-      addHome({refEnginRecordNo: id}).then(res => {
+      getHomeLoginDetail({recordNo: id}).then(res => {
         this.isShowDialog = false;
-        this.editId = res.data;
-        this.getDetail();
+        let data = res.data;
+        this.mainForm.type = data.productCategory;
+        this.mainForm.saleType = '';
+        this.mainForm.loginNum = data.recordNo;
+        this.mainForm.enginName = data.projectName;
+        this.mainForm.loginType = data.promiseStatus;
+        this.mainForm.company = data.useUnit;
+        this.mainForm.contactMan = data.buyUnitCallMen;
+        this.mainForm.tel = data.buyUnitTel;
+        this.mainForm.phone = data.buyUnitPhone;
+        this.mainForm.address = data.installAddress;
+
+        this.goodsList = data.items.map(item => {
+          return {
+            useRefCount: '',
+            saleTypeName: '',
+            materialNumber: '',
+            materialOldNumber: item.code,
+            materialName: item.name,
+            specification: item.machine,
+            baseUnitId: '',
+            price: item.price,
+            enginNum: '',
+            qty: item.num,
+            customerWalletId2: '',
+            rebateRate: '',
+            discAmount: '',
+            customerWalletId: '',
+            isDirectTransfer: false,
+            directTransferQty: '',
+            hasSendQty: '',
+            remark: item.discri,
+            tax: '',
+            status1: '',
+            status2: '',
+          }
+        })
       })
     },
 
@@ -647,25 +683,24 @@ export default {
     clickSubmitForm(type) {
       this.$refs.mainForm.validate((valid) => {
         if (valid) {
+          for(let i=0; i<this.goodsList.length; i++) {
+            if(!this.goodsList[i].customerWalletId) {
+              this.$errorMsg('请选择现金钱包');
+              return;
+            }
+          }
+
           let saleTypeItem = this.salesTypeList.find(o => o.id == this.mainForm.saleType);
           let params = {
             enginOrderId: this.mainForm.orderNum,
             orderDate: this.mainForm.orderDate,
-            refProductCategory: this.mainForm.type || '',
-            // customerId: this.mainForm.jxsNum,
-            // customerName: this.mainForm.jxsName,
+            mainId: this.mainForm.type || '',
             refEnginRecordNo: this.mainForm.loginNum || '',
-            refProjectName: this.mainForm.enginName || '',
-            refPromiseStatus: this.mainForm.loginType || '',
             refFactoryNo: this.mainForm.factoryNum || '',
-            refUseUnit: this.mainForm.company || '',
             saleTypeId: this.mainForm.saleType,
             saleTypeCode: saleTypeItem.saleCode,
             saleTypeName: saleTypeItem.saleName,
-            // aaa: this.mainForm.contactMan,
-            // aaa: this.mainForm.tel,
-            // aaa: this.mainForm.phone,
-            refInstallAddress: this.mainForm.address || '',
+            buyUnitPhone: this.mainForm.phone,
             note2: this.mainForm.greeRemark || '',
             note1: this.mainForm.greeReply || '',
             remark: this.mainForm.remark || '',
@@ -673,11 +708,19 @@ export default {
             items: this.goodsList,
           }
           if(type === 1) {
-            editHome(params).then(res => {
-              this.$successMsg('编辑成功');
-              this.goBack();
-              this.$parent.getList();
-            })
+            if(this.listItem) {
+              editHome(params).then(res => {
+                this.$successMsg('编辑成功');
+                this.goBack();
+                this.$parent.getList();
+              })
+            }else {
+              addHome(params).then(res => {
+                this.$successMsg('新增成功');
+                this.goBack();
+                this.$parent.getList();
+              })
+            }
           }else if(type === 2) {
             submitHome(params).then(res => {
               this.$successMsg('提交审核成功');

+ 0 - 216
src/views/supply/policy/components/Untitled-1.json

@@ -1,216 +0,0 @@
-{
-  "code": 1,
-  "msg": "操作成功",
-  "time": 1656664932,
-  "data": [
-    {
-      "id": 413749,
-      "belong_company_id": 2,
-      "belong_company": "S9219801",
-      "websit_number": "S2106770",
-      "worker_order_no": "2220220609135011878913",
-      "order_product_id": 238993,
-      "worker_id": 32087,
-      "worker_name": "罗世奇",
-      "worker_number": "S21067700116",
-      "worker_phone": "16626205908",
-      "wxgid": 6113138,
-      "inside_code": "18899758682TT",
-      "inside_code2": "",
-      "inside_password": "",
-      "inside_password2": "",
-      "out_code": "19998875682XC",
-      "out_password": "",
-      "source": "mobile",
-      "type": "insideAndOut",
-      "inside_picture": "uploads\/signwater\/2022-06-09\/202206091351344549307779035495.png",
-      "inside2_picture": "",
-      "out_picture": "uploads\/signwater\/2022-06-09\/202206091352082964314481740076.png",
-      "machine_picture": "",
-      "other_picture": null,
-      "vacuo_picture": "",
-      "safety_picture": "",
-      "switch_picture": "",
-      "bracket": "",
-      "pipe": "",
-      "switch_flag": "",
-      "high_altitude": "",
-      "hole": "",
-      "remark": "",
-      "video": "",
-      "status": "1",
-      "temp_save_remark": "",
-      "firsttime": 1654753958,
-      "createtime": "2022-06-09 13:50:11",
-      "updatetime": "2022-06-09 13:52:38",
-      "deletetime": null,
-      "onwall_picture": "",
-      "assist_remark": "",
-      "running_water_tds": "",
-      "machine_running_tds": "",
-      "water_pressure": "",
-      "in_style": "",
-      "in_number": "",
-      "in_style2": "",
-      "in_number2": "",
-      "out_style": "",
-      "out_number": "",
-      "main_number": "101",
-      "small_number": "1104",
-      "main_id": 101,
-      "small_id": 125,
-      "series_id": 0,
-      "product_id": 633678,
-      "province": "广东省",
-      "city": "广州市",
-      "area": "天河区",
-      "street": "华景西街",
-      "lat": "23.135519",
-      "lng": "113.35693",
-      "gps_address": "广东省广州市天河区华景西街",
-      "is_sync": "0",
-      "main_area": "",
-      "tmguid": "",
-      "clearing": 0,
-      "clearing_amount": 0,
-      "clearing_time": 0,
-      "business_id": 0,
-      "sales_type": "",
-      "main_name": "家用空调",
-      "small_name": "变频挂机",
-      "series_name": "",
-      "pname": "KFR-35GW\/(35518)FNhAa-B1(WIFI)(含管) 顶(珊瑚玉)",
-      "clearing_wid": 0,
-      "clearing_wname": "",
-      "sales_wid": 0,
-      "code_index": 1,
-      "detail_id": "202206091351583465596187437781",
-      "inside_num": 1,
-      "out_num": 1,
-      "old_websit_number": "",
-      "settle_old_websit_number": "",
-      "pgguid": "98125116633360DA7593C5373F883B45",
-      "pgwcmxid": "628ba2dbe7b811ec82a700163e09459f",
-      "detail_source": 1,
-      "cj_send_flag": 1,
-      "wg_send_flag": 1,
-      "pgmxid": "",
-      "push_settle_system_status": 0,
-      "push_settle_system_num": 0,
-      "operator_account": "",
-      "operator_name": "",
-      "operator_websit_number": "",
-      "operator_websit_name": "",
-      "main_responsible_number": "S21067700116",
-      "main_responsible_name": "罗世奇",
-      "main_settle_ratio": "60.00",
-      "assist_responsible_number": "S21067700117",
-      "assist_responsible_name": "邹今长",
-      "assist_settle_ratio": "40.00",
-      "reset_password_num": 0,
-      "is_install_engineer": 0,
-      "is_system_vacuum": 0,
-      "is_decode": 0,
-      "is_test": 0,
-      "order_install_detail_append": [
-        {
-          "id": 638259,
-          "belong_company_id": 2,
-          "belong_company": "S9219801",
-          "websit_number": "S2106770",
-          "worker_order_no": "2220220609135011878913",
-          "detail_id": "202206091351583465596187437781",
-          "name": "外机",
-          "type": 1,
-          "remark": "",
-          "path": "uploads\/signwater\/2022-06-09\/202206091352082964314481740076.png",
-          "append_index": 0,
-          "createtime": "2022-06-09 13:52:38",
-          "updatetime": "2022-06-09 13:52:42",
-          "pgguid": "98125116633360DA7593C5373F883B45",
-          "pgwcmxid": "628ba2dbe7b811ec82a700163e09459f",
-          "gree_image_id": "1_p_220609_S2106770_6qzGGSv5q2gC8LAG8mnZ5d.png",
-          "attempts_gree": 1,
-          "fjguid": "628c6ca8e7b811ec82a700163e09459f",
-          "type_text": "out_picture",
-          "path_url": "https:\/\/aliyunoss.zfire.top\/uploads\/signwater\/2022-06-09\/202206091352082964314481740076.png?OSSAccessKeyId=LTAI4G3XTLh8G8DiTpXHpWgt&Expires=1656669600&Signature=deSwTgvsMp47pYEdPbGYvbsJcDc%3D"
-        },
-        {
-          "id": 638260,
-          "belong_company_id": 2,
-          "belong_company": "S9219801",
-          "websit_number": "S2106770",
-          "worker_order_no": "2220220609135011878913",
-          "detail_id": "202206091351583465596187437781",
-          "name": "内机",
-          "type": 0,
-          "remark": "",
-          "path": "uploads\/signwater\/2022-06-09\/202206091351344549307779035495.png",
-          "append_index": 0,
-          "createtime": "2022-06-09 13:52:38",
-          "updatetime": "2022-06-09 13:52:42",
-          "pgguid": "98125116633360DA7593C5373F883B45",
-          "pgwcmxid": "628ba2dbe7b811ec82a700163e09459f",
-          "gree_image_id": "1_p_220609_S2106770_MjO5iJx~tXsChKkSM0a077.png",
-          "attempts_gree": 1,
-          "fjguid": "628ca877e7b811ec82a700163e09459f",
-          "type_text": "inside_picture",
-          "path_url": "https:\/\/aliyunoss.zfire.top\/uploads\/signwater\/2022-06-09\/202206091351344549307779035495.png?OSSAccessKeyId=LTAI4G3XTLh8G8DiTpXHpWgt&Expires=1656669600&Signature=zJLwBSkAu0OaRd%2Flwmawory9lsA%3D"
-        },
-        {
-          "id": 638261,
-          "belong_company_id": 2,
-          "belong_company": "S9219801",
-          "websit_number": "S2106770",
-          "worker_order_no": "2220220609135011878913",
-          "detail_id": "202206091351583465596187437781",
-          "name": "上墙",
-          "type": 7,
-          "remark": "",
-          "path": "uploads\/signwater\/2022-06-09\/202206091351407681921520646404.png",
-          "append_index": 0,
-          "createtime": "2022-06-09 13:52:38",
-          "updatetime": "2022-06-09 13:52:42",
-          "pgguid": "98125116633360DA7593C5373F883B45",
-          "pgwcmxid": "628ba2dbe7b811ec82a700163e09459f",
-          "gree_image_id": "1_p_220609_S2106770_H6ASyn00qSSAPm~G2-vMd0.png",
-          "attempts_gree": 1,
-          "fjguid": "628cd3e0e7b811ec82a700163e09459f",
-          "type_text": "onwall_picture",
-          "path_url": "https:\/\/aliyunoss.zfire.top\/uploads\/signwater\/2022-06-09\/202206091351407681921520646404.png?OSSAccessKeyId=LTAI4G3XTLh8G8DiTpXHpWgt&Expires=1656669600&Signature=W3CtkhYhjDC%2B7Y1%2FX7est%2BrVUtQ%3D"
-        },
-        {
-          "id": 638262,
-          "belong_company_id": 2,
-          "belong_company": "S9219801",
-          "websit_number": "S2106770",
-          "worker_order_no": "2220220609135011878913",
-          "detail_id": "202206091351583465596187437781",
-          "name": "外机其它",
-          "type": 5,
-          "remark": "",
-          "path": "uploads\/signwater\/2022-06-09\/202206091352131314372691101322.png",
-          "append_index": 0,
-          "createtime": "2022-06-09 13:52:38",
-          "updatetime": "2022-06-09 13:52:42",
-          "pgguid": "98125116633360DA7593C5373F883B45",
-          "pgwcmxid": "628ba2dbe7b811ec82a700163e09459f",
-          "gree_image_id": "1_p_220609_S2106770_QrCocPJTtZ0Y775pygzIb8.png",
-          "attempts_gree": 1,
-          "fjguid": "628cfc35e7b811ec82a700163e09459f",
-          "type_text": "out_other_picture",
-          "path_url": "https:\/\/aliyunoss.zfire.top\/uploads\/signwater\/2022-06-09\/202206091352131314372691101322.png?OSSAccessKeyId=LTAI4G3XTLh8G8DiTpXHpWgt&Expires=1656669600&Signature=GK6jlt8h%2F%2BNVRQS91KXCxFVYC6c%3D"
-        }
-      ],
-      "order_install_detail_code": [],
-      "type_text": "一内一外",
-      "status_text": "已采集",
-      "detail_source_text": "广佛系统",
-      "is_sync_text": "Is_sync 0",
-      "clearing_time_text": "1970-01-01 08:00:00",
-      "responsible_text": "罗世奇\/邹今长",
-      "is_system_vacuum_text": "已完成真空保存",
-      "firsttime_text": "2022-06-09 13:52:38"
-    }
-  ]
-}

+ 9 - 7
src/views/supply/policy/components/retail_form.vue

@@ -255,7 +255,7 @@
                 size="small"
                 @change="changeWallet(scope.$index)"
               >
-                <el-option label="不使用" value=""></el-option>
+                <el-option label="全部" value=""></el-option>
                 <el-option
                   v-for="item in flWalletList"
                   :key="item.customerWalletId"
@@ -302,7 +302,7 @@
                 placeholder="选择现金钱包"
                 size="small"
               >
-                <el-option label="不使用" value=""></el-option>
+                <el-option label="全部" value=""></el-option>
                 <el-option
                   v-for="item in comxjWalletList(scope.row.walletRelaList)"
                   :key="item.customerWalletId"
@@ -442,7 +442,6 @@
                     filterable
                     style="width: 100%"
                   >
-                  <el-option label="不使用" value=""></el-option>
                     <el-option
                       v-for="(item,index) in policyList"
                       :key="index"
@@ -459,7 +458,6 @@
                     placeholder="选择销售类型"
                     style="width: 100%"
                   >
-                    <el-option label="不使用" value=""></el-option>
                     <el-option
                       v-for="item in ztypeList"
                       :key="item.id"
@@ -593,7 +591,7 @@
                     placeholder="选择销售类型"
                     style="width: 100%"
                   >
-                    <el-option label="不使用" value=""></el-option>
+                    <el-option label="全部" value=""></el-option>
                     <el-option
                       v-for="item in ztypeList"
                       :key="item.id"
@@ -604,7 +602,7 @@
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="8" :lg="8" class="tr">
-                <el-button type="primary" size="small">查询</el-button>
+                <el-button type="primary" size="small"    @click="handlePolicyTypeList">查询</el-button>
               </el-col>
             </el-row>
           </el-form>
@@ -841,7 +839,7 @@
       },
       comxjWalletList() {
         return (c) => {
-          console.log(c);
+          console.log(c,'现金钱包');
           const walle = [];
           const ovalVall = c == undefined || !c.length ? [] : c;
           for (let i = 0; i < this.xjWalletList.length; i++) {
@@ -886,6 +884,7 @@
           this.goodsList = data.retailOrderItemList;
         });
       },
+      // 获取销售政策
       getPolicyList() {
         policyList({
           pageNum: 1,
@@ -893,6 +892,7 @@
         }).then((res) => {
           console.log(res, "tyep");
           this.policyList = res.data.records;
+          this.screenForm.policyId = res.data.records[0].code
         });
       },
       getTypeList() {
@@ -935,6 +935,7 @@
             res.data.records[i].qty = 1;
           }
           this.dataList = res.data.records;
+          this.screenForm.policyId = ''
         });
       },
       getMaterialTypeList() {
@@ -947,6 +948,7 @@
 
         });
       },
+      //引用销售政策搜索
       handlePolicyTypeList() {
         this.getpolicyTypeList();
       },

+ 1 - 1
src/views/supply/retail/components/retail_form.vue

@@ -421,7 +421,7 @@ export default {
       getGoodsList({
         pageNum: this.currentPage,
         pageSize: 10,
-        mainId: this.screenForm.type,
+        mainId: this.mainForm.type,
         saleId: this.screenForm.salesType,
         materialCode: this.screenForm.proNum,
         materialName: this.screenForm.proName,