Browse Source

【新增】家用工程订单/信息单 - 审批可编辑内容

莫绍宝 3 years ago
parent
commit
86277e68cb

+ 81 - 31
src/views/supply/engin/components/engin_examine.vue

@@ -26,11 +26,20 @@
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">项目名称</div>
-          <div class="value">{{detailData.projectName}}</div>
+          <div class="value">
+            <el-input v-model="detailData.projectName" placeholder="请输入项目名称"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">单据类型</div>
-          <div class="value">{{detailData.orderType}}</div>
+          <div class="label">机型类别</div>
+          <div class="value">
+            <el-select v-model="detailData.machineType" placeholder="选择机型类别" size="small" clearable style="width: 100%">
+              <el-option
+                v-for="item in machineTypeList"
+                :key="item.dictCode" :label="item.dictValue" :value="item.dictCode">
+              </el-option>
+            </el-select>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">经销商名称</div>
@@ -38,35 +47,56 @@
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">使用单位</div>
-          <div class="value">{{detailData.useUnit}}</div>
+          <div class="value">
+            <el-input v-model="detailData.useUnit" placeholder="请输入使用单位"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">安装地址</div>
-          <div class="value">{{detailData.installAddress}}</div>
+          <div class="value">
+            <el-input v-model="detailData.installAddress" placeholder="请输入安装地址"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">工程编号</div>
-          <div class="value">{{detailData.projectNo}}</div>
+          <div class="value">
+            <el-input v-model="detailData.projectNo" placeholder="请输入工程编号"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">厂工程编码</div>
-          <div class="value">{{detailData.enginFactoryNo}}</div>
+          <div class="value">
+            <el-input v-model="detailData.enginFactoryNo" placeholder="请输入厂工程编码"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">工程登录类型</div>
-          <div class="value">{{detailData.enginSignType}}</div>
+          <div class="value">
+            <el-select v-model="detailData.enginSignType" placeholder="选择工程登录类型" size="small" clearable style="width: 100%">
+              <el-option
+                v-for="item in loginTypeList"
+                :key="item.dictCode" :label="item.dictValue" :value="item.dictCode">
+              </el-option>
+            </el-select>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">联系人</div>
-          <div class="value">{{detailData.linkman}}</div>
+          <div class="value">
+            <el-input v-model="detailData.linkman" placeholder="请输入联系人"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">联系电话</div>
-          <div class="value">{{detailData.phone}}</div>
+          <div class="value">
+            <el-input v-model="detailData.phone" placeholder="请输入联系电话"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">固定电话</div>
-          <div class="value">{{detailData.tel}}</div>
+          <div class="value">
+            <el-input v-model="detailData.tel" placeholder="请输入固定电话"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">制单人</div>
@@ -290,7 +320,7 @@
 
 <script>
 import { getEnginDetail, getRetailProductList, examineEngin } from "@/api/supply/engin";
-import { getTypeList, getSalesmanList } from "@/api/common";
+import { getTypeList, getSalesmanList, getDictList } from "@/api/common";
 
 export default {
   name: 'EnginExamine',
@@ -323,6 +353,9 @@ export default {
 
       salesTypeList: [],
       salesmanList: [],
+      machineTypeList: [],
+      loginTypeList: [],
+      powerList: [],
       
       isShowGoodsDialog: false,
       goodsScreenForm: {
@@ -348,6 +381,7 @@ export default {
     this.getDetail();
     this.getTypeList();
     this.getSalesmanList();
+    this.getDictList();
   },
 
   methods: {
@@ -385,6 +419,19 @@ export default {
       })
     },
 
+    // 获取产品大类列表
+    getDictList() {
+      getDictList({sysDictEnum: 'MACHINE_TYPE'}).then(res => {
+        this.machineTypeList = res.data;
+      })
+      getDictList({sysDictEnum: 'POWER_CATEGORY'}).then(res => {
+        this.powerList = res.data;
+      })
+      getDictList({sysDictEnum: 'SIGN_TYPE'}).then(res => {
+        this.loginTypeList = res.data;
+      })
+    },
+
     // 获取商品列表
     getGoodsList() {
       getRetailProductList({
@@ -543,25 +590,28 @@ export default {
       if(!this.detailData.serviceId) {
         return this.$errorMsg('请选择业务员');
       }
-      let saleManItem = this.detailData.serviceId ? this.salesmanList.find(o => o.adminUserId == this.detailData.serviceId) : '';
-      this.formLoading = true;
-      examineEngin({
-        enginInfoId: this.listItem.enginInfoId,
-        mainId: this.listItem.mainId,
-        examineResult: this.examineForm.examineResult,
-        examineNote: this.examineForm.remark,
-        contractExpireDate: this.detailData.contractExpireDate,
-        serviceId: this.detailData.serviceId,
-        serviceName: saleManItem.nickName,
-        remark: this.detailData.remark,
-        items: this.goodsList,
-      }).then(res => {
-        this.$successMsg('审批成功');
-        this.goBack();
-        this.$parent.getList();
-      }).finally(res => {
-        this.formLoading = false;
-      })
+      this.$confirm('此操作将审批订单, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let saleManItem = this.salesmanList.find(o => o.adminUserId == this.detailData.serviceId);
+        let params = JSON.parse(JSON.stringify(this.detailData));
+        params.enginInfoId = this.listItem.enginInfoId;
+        params.mainId = this.listItem.mainId;
+        params.examineResult = this.examineForm.examineResult;
+        params.examineNote = this.examineForm.remark;
+        params.serviceName = saleManItem.nickName;
+        params.items = this.goodsList;
+        this.formLoading = true;
+        examineEngin(params).then(res => {
+          this.$successMsg('审批成功');
+          this.goBack();
+          this.$parent.getList();
+        }).finally(res => {
+          this.formLoading = false;
+        })
+      }).catch(() => {});
     },
 
   }

+ 90 - 33
src/views/supply/engin/components/home_examine.vue

@@ -34,43 +34,59 @@
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">项目类别</div>
-          <div class="value">{{detailData.refProjectName}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refProjectName" placeholder="请输入项目类别"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">行业类别</div>
-          <div class="value">{{detailData.refTradeCategory}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refTradeCategory" placeholder="请输入行业类别"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">跨区厂编号</div>
-          <div class="value">{{detailData.refFactoryNo}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refFactoryNo" placeholder="请输入跨区厂编号"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">使用单位</div>
-          <div class="value">{{detailData.refUseUnit}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refUseUnit" placeholder="请输入使用单位"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">销售类型</div>
           <div class="value">
-            <el-select v-model="detailData.saleTypeId" placeholder="选择销售类型" style="width: 100%" clearable>
+            <el-select v-model="detailData.saleTypeId" placeholder="选择销售类型" size="small" style="width: 100%" clearable>
               <el-option v-for="item in salesTypeList" :key="item.id" :label="item.saleName" :value="item.id"></el-option>
             </el-select>
           </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">联系人</div>
-          <div class="value">{{detailData.refLinkman}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refLinkman" placeholder="请输入联系人"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">固定电话</div>
-          <div class="value">{{detailData.refTel}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refTel" placeholder="请输入固定电话"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">移动电话</div>
-          <div class="value">{{detailData.refPhone}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refPhone" placeholder="请输入移动电话"></el-input>
+          </div>
         </el-col>
         <el-col :span="24" class="item">
           <div class="label">安装地址</div>
-          <div class="value">{{detailData.refInstallAddress}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refInstallAddress" placeholder="请输入安装地址"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">不扣押金</div>
@@ -80,12 +96,23 @@
           </div>
         </el-col>
         <el-col :span="8" class="item">
-          <div class="label">文件编码</div>
-          <div class="value">{{detailData.fileNo}}</div>
+          <div class="label">文件编号</div>
+          <div class="value">
+            <el-input v-model="detailData.fileNo" placeholder="请输入文件编号"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">业务员</div>
-          <div class="value">{{detailData.serviceName}}</div>
+          <div class="value">
+            <el-select v-model="detailData.serviceId" placeholder="选择业务员" size="small" filterable clearable style="width: 100%">
+              <el-option
+                v-for="item in salesmanList"
+                :key="item.adminUserId"
+                :label="item.nickName"
+                :value="item.adminUserId">
+              </el-option>
+            </el-select>
+          </div>
         </el-col>
         <!-- <el-col :span="24" class="item">
           <div class="label">格力回复</div>
@@ -101,23 +128,33 @@
         </el-col> -->
         <el-col :span="16" class="item">
           <div class="label">项目说明</div>
-          <div class="value">{{detailData.refProjectNote}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refProjectNote" placeholder="请输入项目说明"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">项目类型</div>
-          <div class="value">{{detailData.refProjectType}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refProjectType" placeholder="请输入项目类型"></el-input>
+          </div>
         </el-col>
         <el-col :span="24" class="item">
           <div class="label">格力内部备注</div>
-          <div class="value">{{detailData.geLiInerNote}}</div>
+          <div class="value">
+            <el-input v-model="detailData.geLiInerNote" placeholder="请输入格力内部备注"></el-input>
+          </div>
         </el-col>
         <el-col :span="16" class="item">
           <div class="label">备注</div>
-          <div class="value">{{detailData.remark}}</div>
+          <div class="value">
+            <el-input v-model="detailData.remark" placeholder="请输入备注"></el-input>
+          </div>
         </el-col>
         <el-col :span="8" class="item">
           <div class="label">第几次申报</div>
-          <div class="value">{{detailData.refDeclareNo}}</div>
+          <div class="value">
+            <el-input v-model="detailData.refDeclareNo" placeholder="请输入第几次申报"></el-input>
+          </div>
         </el-col>
         <el-col :span="6" class="item">
           <div class="label">制单人</div>
@@ -152,20 +189,20 @@
         stripe
         max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-        <el-table-column align="center" label="引用记录" prop="useRefCount" min-width="160" show-overflow-tooltip></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="materialNumber" min-width="120" 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="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="left" label="引用记录" prop="useRefCount" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="left" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="left" label="产品编码" prop="materialOldNumber" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="left" label="规格型号" prop="specification" min-width="350" show-overflow-tooltip></el-table-column>
+        <el-table-column align="left" label="单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="right" label="单价" prop="price" min-width="100" show-overflow-tooltip>
           <template slot-scope="scope">
             <!-- {{ scope.row.price | numToFixed }} -->
             <el-input v-model="scope.row.price" size="small" type="number"></el-input>
           </template>
         </el-table-column>
-        <el-table-column align="right" label="工程登录数量" prop="enginNum" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="right" label="工程登录数量" prop="enginNum" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="right" label="数量" prop="qty" min-width="100" show-overflow-tooltip>
           <template slot-scope="scope">
             <!-- {{ (scope.row.qty*100 - scope.row.directTransferQty*100 - scope.row.retiredQty*100) / 100 }} -->
@@ -183,7 +220,7 @@
             {{ scope.row.rebateAmount | numToFixed }}
           </template>
         </el-table-column> -->
-        <el-table-column align="center" label="返利类型" prop="customerWalletId2" min-width="160" show-overflow-tooltip>
+        <el-table-column align="left" label="返利类型" prop="customerWalletId2" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
             <el-select v-model="scope.row.customerWalletId2" placeholder="选择返利类型" size="small" clearable @change="changeFlWallet(scope.$index)">
               <el-option
@@ -205,13 +242,13 @@
             {{ scope.row.discAmount | numToFixed }}
           </template>
         </el-table-column>
-        <!-- <el-table-column align="center" label="现金钱包" prop="customerWalletName" min-width="140" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column align="left" label="现金钱包" prop="customerWalletName" min-width="140" show-overflow-tooltip></el-table-column>
         <el-table-column align="right" label="实付金额" prop="payAmount" min-width="100" show-overflow-tooltip>
           <template slot-scope="scope">
             {{ scope.row.payAmount | numToFixed }}
           </template>
         </el-table-column> -->
-        <el-table-column align="center" label="现金钱包" prop="customerWalletId" min-width="160" show-overflow-tooltip>
+        <el-table-column align="left" label="现金钱包" prop="customerWalletId" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
             <el-select v-model="scope.row.customerWalletId" placeholder="选择现金钱包" size="small" clearable @change="changeXjWallet(scope.$index)">
               <el-option
@@ -228,15 +265,15 @@
             {{(((scope.row.price * scope.row.qty) * 100 - ((scope.row.price * scope.row.qty * (scope.row.rebateRate * 100)) / 100) * 100 - ((scope.row.qty * (scope.row.discAmount * 100)) / 100) * 100) / 100)  | numToFixed}}
           </template>
         </el-table-column>
-        <el-table-column align="center" label="是否直调" prop="isDirectTransfer" min-width="100" show-overflow-tooltip>
+        <el-table-column align="left" label="是否直调" prop="isDirectTransfer" min-width="100" show-overflow-tooltip>
           <template slot-scope="scope">
             {{ scope.row.isDirectTransfer ? '是' : '否' }}
           </template>
         </el-table-column>
         <el-table-column align="right" label="直调数量" prop="directTransferQty" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="right" 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="left" label="备注" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="left" label="税率" prop="tax" min-width="100" show-overflow-tooltip></el-table-column>
       </el-table>
     </div>
 
@@ -275,7 +312,7 @@
 
 <script>
 import { getOrderDetail, examineHome } from "@/api/supply/engin";
-import { getTypeList } from '@/api/common'
+import { getTypeList, getSalesmanList } from '@/api/common'
 
 export default {
   name: 'HomeExamine',
@@ -304,12 +341,14 @@ export default {
       },
 
       salesTypeList: [],
+      salesmanList: [],
 
       formLoading: false,
     }
   },
 
-  created() {
+  async created() {
+    await this.getSalesmanList();
     this.getSalesTypeList();
     this.getDetail();
   },
@@ -341,6 +380,16 @@ export default {
       })
     },
 
+    async getSalesmanList() {
+      const res = await getSalesmanList({
+        pageNum: 1,
+        pageSize: -1,
+        isCustomer: 0,
+        status: true,
+      });
+      this.salesmanList = res.data.records;
+    },
+
     // 返回列表
     goBack() {
       this.$emit('backListFormDetail');
@@ -391,18 +440,26 @@ export default {
 
     // 审批
     clickSubmitForm(val) {
+      if(!this.detailData.saleTypeId) {
+        return this.$errorMsg('请选择销售类型');
+      }
+      if(!this.detailData.serviceId) {
+        return this.$errorMsg('请选择业务员');
+      }
       this.$confirm('此操作将审批订单, 是否继续?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
         let saleTypeItem = this.salesTypeList.find(o => o.id == this.detailData.saleTypeId);
+        let saleManItem = this.salesmanList.find(o => o.adminUserId == this.detailData.serviceId);
         let params = JSON.parse(JSON.stringify(this.detailData));
         params.examineNote = this.examineForm.remark;
         params.examineResult = val;
         params.saleTypeId = this.detailData.saleTypeId;
         params.saleTypeCode = saleTypeItem.saleCode;
         params.saleTypeName = saleTypeItem.saleName;
+        params.serviceName = saleManItem.nickName;
         this.formLoading = true;
         examineHome(params).then(res => {
           if(!res.data) {

+ 1 - 1
src/views/supply/engin/components/home_form.vue

@@ -189,7 +189,7 @@
     <div class="table" style="margin-top: 20px">
       <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="useRefCount" min-width="160" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column align="center" label="引用记录" prop="useRefCount" min-width="160" show-overflow-tooltip></el-table-column> -->
         <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="120" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="物料编码" prop="materialNumber" min-width="120" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品编码" prop="materialOldNumber" min-width="120" show-overflow-tooltip></el-table-column>