Prechádzať zdrojové kódy

采购需求汇总按钮接口等

黄梓星 2 rokov pred
rodič
commit
7218a2ccf2

+ 29 - 0
src/api/purchase/DemandSummary.js

@@ -22,4 +22,33 @@ export function auditSummary(id) {
     url: `/pu/demand/audit/${id}`,
     method: 'get',
   })
+}
+// 采购需求汇总确认
+export function confirmSummary(data) {
+  return request({
+    url: `/pu/demand/item/summary/confirm`,
+    method: 'post',
+    data: data
+  })
+}
+// 采购需求汇总取消
+export function cancelSummary(id) {
+  return request({
+    url: `/pu/demand/item/summary/cancel/${id}`,
+    method: 'get',
+  })
+}
+// 采购需求汇总弃审
+export function cancelAuditSummary(id) {
+  return request({
+    url: `/pu/demand/item/summary/cancel/audit/${id}`,
+    method: 'get',
+  })
+}
+// 采购需求汇总明细行关闭
+export function shutDownSummary(id) {
+  return request({
+    url: `/pu/demand/item/summary/shutDown/${id}`,
+    method: 'get',
+  })
 }

+ 1 - 1
src/api/purchase/basic.js

@@ -41,7 +41,7 @@ export function delDivision(ids) {
 // 参照统一接口
 export function getRefer(data) {
   return request({
-    url: '/refer/query',
+    url: `/refer/query?pageSize=${data.pageSize}&pageNum=${data.pageNo}`,
     method: 'post',
     data: data
   })

+ 23 - 4
src/views/purchase/DemandSummary/add.vue

@@ -5,7 +5,7 @@
       <div class="btn_grooup">
         <el-button type="primary" size="small">编辑</el-button>
         <el-button type="primary" size="small">确定</el-button>
-        <el-button type="primary" size="small">行关闭</el-button>
+        <el-button type="primary" size="small" @click="closeLine">行关闭</el-button>
         <el-button type="primary" size="small">重取批量</el-button>
       </div>
 
@@ -84,7 +84,7 @@
 </template>
 
 <script>
-import {getSummaryDetail} from '@/api/purchase/DemandSummary.js'
+import {getSummaryDetail, shutDownSummary } from '@/api/purchase/DemandSummary.js'
 export default {
   name: 'checkDemandSummary',
   props: ['pageStu','row', 'disable'],
@@ -94,7 +94,8 @@ export default {
   },
   data() {
     return{
-      tableList: []
+      tableList: [],
+      ids: []
     }
   },
   created() {
@@ -106,7 +107,11 @@ export default {
     }
   },
   methods: {
-    handleSelectionChange() {},
+    handleSelectionChange(selection) {
+      console.log('选中', selection)
+      this.ids = selection.map(item => item.demandItemId)
+      console.log('选中数组', this.ids.join())
+    },
     back() {
       this.$emit('jugislist', true)
       let queryParams = {
@@ -123,6 +128,20 @@ export default {
         }
       })
     },
+    // 行关闭
+    closeLine() {
+      if (this.ids.length == 0) {
+        this.$modal.msgWarning("请选中至少一条数据");
+      } else {
+        let param = this.ids.join()
+        shutDownSummary(param).then(res => {
+          if (res.code === 200) {
+            this.$modal.msgSuccess("取消成功");
+            this.getDetails(this.row)
+          }
+        })
+      }
+    },
   }
 }
 </script>

+ 45 - 7
src/views/purchase/DemandSummary/index.vue

@@ -284,10 +284,10 @@
         <div class="btn_grooup">
           <el-button type="primary" size="small">编辑</el-button>
           <el-button type="primary" size="small">保存</el-button>
-          <el-button type="primary" size="small">确认</el-button>
-          <el-button type="primary" size="small">取消</el-button>
+          <el-button type="primary" size="small" @click="confirms">确认</el-button>
+          <el-button type="primary" size="small" @click="cancels">取消</el-button>
           <el-button type="primary" size="small" @click="audits">审核</el-button>
-          <el-button type="primary" size="small">弃审</el-button>
+          <el-button type="primary" size="small" @click="cancelAudits">弃审</el-button>
 
           <el-dropdown size="small" @command="handleCommand">
             <el-button size="small" type="primary" style="margin: 0 10px;">
@@ -391,7 +391,7 @@
 <script>
 import Add from './add.vue'
 import CollapseTransition from '@/components/MyCollapse/collapse.vue'
-import {getSummaryList, auditSummary} from '@/api/purchase/DemandSummary.js'
+import {getSummaryList, auditSummary, confirmSummary , cancelSummary , cancelAuditSummary } from '@/api/purchase/DemandSummary.js'
 export default {
   name: 'demandSummary',
   components: {
@@ -422,15 +422,16 @@ export default {
         pageSize: 10
       },
       options: [{
-        value: '1', label: '是',
+        value: '0', label: '是',
       }, {
-        value: '0', label: '否'
+        value: '2', label: '否'
       }],
       tableList: [],
       total: 0,
       rowDetail: {},
       disable: false,
-      ids: []
+      ids: [],
+      allSelection: [],
     }
   },
   created() {
@@ -447,6 +448,7 @@ export default {
     },
     handleSelectionChange(selection) {
       console.log('选中', selection)
+      this.allSelection = selection
       this.ids = selection.map(item => item.demandItemId)
       console.log('选中数组', this.ids.join())
     },
@@ -472,6 +474,29 @@ export default {
     drop() {
       this.expanded = !this.expanded
     },
+    confirms() {
+      if (this.ids.length == 0) {
+        this.$modal.msgWarning("请选中至少一条数据");
+      } else {
+        confirmSummary(this.allSelection).then(res => {
+          this.$modal.msgSuccess("确认成功");
+          this.getList(this.queryParams)
+        })
+      }
+    },
+    cancels() {
+      if (this.ids.length == 0) {
+        this.$modal.msgWarning("请选中至少一条数据");
+      } else {
+        let param = this.ids.join()
+        cancelSummary(param).then(res => {
+          if (res.code === 200) {
+            this.$modal.msgSuccess("取消成功");
+            this.getList(this.queryParams)
+          }
+        })
+      }
+    },
     audits() {
       if(this.ids.length == 0) {
         this.$modal.msgWarning("请选中至少一条数据");
@@ -485,6 +510,19 @@ export default {
         })
       }
     },
+    cancelAudits() {
+      if (this.ids.length == 0) {
+        this.$modal.msgWarning("请选中至少一条数据");
+      } else {
+        let param = this.ids.join()
+        cancelAuditSummary(param).then(res => {
+          if (res.code === 200) {
+            this.$modal.msgSuccess("操作成功");
+            this.getList(this.queryParams)
+          }
+        })
+      } 
+    },
   }
 }
 </script>

+ 65 - 74
src/views/purchase/PurchaseDemandList/add.vue

@@ -25,12 +25,8 @@
 
          <el-col :span="1.5">
             <el-form-item label="需求处理方式">
-              <el-select v-model="basicForm.demandBusinessType" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
+              <el-select v-model="basicForm.demandBusinessType" size="small" style="width: 200px">
+                <el-option v-for="dict in dict.type.sys_processing_mode" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -39,11 +35,7 @@
          <el-col :span="1.5">
             <el-form-item label="单据状态">
               <el-select v-model="basicForm.status" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
+                <el-option v-for="dict in dict.type.sys_status" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -51,43 +43,26 @@
 
          <el-col :span="1.5">
             <el-form-item label="需求客户">
-              <el-input v-model="basicForm.customer" size="small" style="width: 200px">
-                <el-button slot="append" icon="el-icon-more" @click="chooseCustomer"></el-button>
-              </el-input>
+              <el-select size="small" v-model="basicForm.customer" :disabled="disable" @focus="chooseCustomer" style="width: 200px">
+                <el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.id" />
+              </el-select>
             </el-form-item>
           </el-col>
 
          <el-col :span="1.5">
             <el-form-item label="需求客户名称">
-              <el-select v-model="basicForm.customerName" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
+              <el-input v-model="basicForm.customerName" size="small" style="width: 200px"></el-input>
             </el-form-item>
           </el-col>
 
          <el-col :span="1.5">
             <el-form-item label="客户负责人">
-              <el-select v-model="basicForm.customerPrincipal" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
+              <el-input v-model="basicForm.customerPrincipal" size="small" style="width: 200px"></el-input>
             </el-form-item>
           </el-col>
 
          <el-col :span="1.5">
             <el-form-item label="需求人员">
-                <!-- <el-input v-model="basicForm.demandPersonal" size="small" style="width: 200px">
-                  <el-button slot="append" icon="el-icon-more" @click="choosePerson"></el-button>
-                </el-input> -->
                 <el-select size="small" v-model="basicForm.demandPersonal" :disabled="disable" @focus="choosePerson" style="width: 200px">
                   <el-option v-for="item in personOptions" :key="item.id" :label="item.name" :value="item.id" />
                 </el-select>
@@ -109,61 +84,46 @@
 
           <el-col :span="1.5">
             <el-form-item label="需求日期">
-              <el-input
+              <el-date-picker
                 v-model="basicForm.demandDate"
+                type="date"
+                value-format="yyyy-MM-dd"
                 size="small"
-                placeholder=""
-                clearable
                 style="width: 200px"
-              />
+              >
+              </el-date-picker>
             </el-form-item>
          </el-col>
 
           <el-col :span="1.5">
             <el-form-item label="单据来源">
-              <el-input
-                v-model="basicForm.source"
-                size="small"
-                placeholder=""
-                clearable
-                style="width: 200px"
-              />
+              <el-select v-model="basicForm.source" size="small" style="width: 200px">
+                <el-option v-for="dict in dict.type.sys_bill_source" :key="dict.value" :label="dict.label" :value="dict.value">
+                </el-option>
+              </el-select>
             </el-form-item>
          </el-col>
 
           <el-col :span="1.5">
             <el-form-item label="供应仓库">
-              <el-input
-                v-model="basicForm.warehouse"
-                size="small"
-                placeholder=""
-                clearable
-                style="width: 200px"
-              />
+              <el-select size="small" v-model="basicForm.warehouse" :disabled="disable" @focus="chooseHouse" style="width: 200px">
+                <el-option v-for="item in houseOptions" :key="item.id" :label="item.name" :value="item.id" />
+              </el-select>
             </el-form-item>
          </el-col>
 
          <el-col :span="1.5">
             <el-form-item label="供应货位">
-              <el-select v-model="basicForm.goodsAllocation" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
+              <el-select size="small" v-model="basicForm.goodsAllocation" :disabled="disable" @focus="chooseGoods" style="width: 200px">
+                <el-option v-for="item in goodsOptions" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
 
          <el-col :span="1.5">
             <el-form-item label="业务类型">
-              <el-select v-model="basicForm.billType" size="small" style="width: 200px" clearable placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
+              <el-select v-model="basicForm.billType" size="small" style="width: 200px">
+                <el-option v-for=" dict in dict.type.sys_business" :key="dict.value" :label="dict.label" :value="dict.value">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -171,13 +131,10 @@
 
           <el-col :span="1.5">
             <el-form-item label="是否客户指定">
-              <el-input
-                v-model="basicForm.isSpeical"
-                size="small"
-                placeholder=""
-                clearable
-                style="width: 200px"
-              />
+              <el-select v-model="basicForm.isSpeical" size="small" style="width: 200px">
+                <el-option v-for=" item in options" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+              </el-select>
             </el-form-item>
          </el-col>
 
@@ -502,10 +459,12 @@
 import Reserved from './reserved.vue'
 import Refers from './refers.vue'
 import {addDemand,getDemandDetail, getDemandSonDetail, editDemand} from '@/api/purchase/purchaseDemand.js'
+// 用于回显参照框数据
 import {getRefer} from '@/api/purchase/basic.js'
 export default {
   name: 'addDemandList',
   props: ['pageStu','row', 'disable'],
+  dicts: ['sys_processing_mode', 'sys_status', 'sys_bill_source', 'sys_business'],
   components: {
     Reserved,
     Refers
@@ -541,9 +500,9 @@ export default {
         puDemandItemList: []
       },
       options: [{
-        value: '1', label: '是',
+        value: '0', label: '是',
       }, {
-        value: '0', label: '否'
+        value: '2', label: '否'
       }],
       basicRules: {},
       tableList: [],
@@ -554,7 +513,10 @@ export default {
         title: '选择组织'
       },
       orgOptions: [],
-      personOptions: []
+      personOptions: [],
+      customerOptions: [],
+      houseOptions: [],
+      goodsOptions: []
     }
   },
   created() {
@@ -711,6 +673,7 @@ export default {
               reciveForm.puDemandItemList = res.rows
               console.log('reciveForm',reciveForm)
               this.basicForm = reciveForm
+              this.reBackRefer({type: 'ORG_PARAM', search: this.basicForm.org, isPage: false})
             }
           })
         }
@@ -725,6 +688,12 @@ export default {
 	  updateReserved (val) {
       this.dialog.config = val
     },
+    // 回显参照框
+    reBackRefer(val) {
+      getRefer(val).then(res => {
+        console.log("🚀 ~ file: add.vue:706 ~ getRefer ~ res:", res)
+      })
+    },
     chooseOrg() {
       this.referCondition.type = 'ORG_PARAM'
       this.referCondition.search = ''
@@ -746,6 +715,20 @@ export default {
       this.referCondition.title = '需求人员'
       this.$refs.refer.init(this.referCondition)
     },
+    chooseHouse() {
+      this.referCondition.type = 'WAREHOUSE_PARAM'
+      this.referCondition.search = ''
+      this.referCondition.isPage = true
+      this.referCondition.title = '供应仓库'
+      this.$refs.refer.init(this.referCondition)
+    },
+    chooseGoods() {
+      this.referCondition.type = 'ALLOCATION_PARAM'
+      this.referCondition.search = ''
+      this.referCondition.isPage = true
+      this.referCondition.title = '供应货位'
+      this.$refs.refer.init(this.referCondition)
+    },
     selectionsToInput(selection) {
       console.log("🚀 ~ file: add.vue:732 ~ selectionsToInput ~ selection:", selection)
       if(this.referCondition.type == 'ORG_PARAM') {
@@ -756,6 +739,14 @@ export default {
         this.personOptions = selection
         this.basicForm.demandPersonal = selection[0].id
       }
+      if(this.referCondition.type == 'WAREHOUSE_PARAM') {
+        this.houseOptions = selection
+        this.basicForm.warehouse = selection[0].id
+      }
+      if(this.referCondition.type == 'ALLOCATION_PARAM') {
+        this.goodsOptions = selection
+        this.basicForm.goodsAllocation = selection[0].id
+      }
     }
   }
 }

+ 2 - 2
vue.config.js

@@ -37,7 +37,7 @@ module.exports = {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `http://172.16.100.107:8080/drp-admin`, //测试
-        // target: `http://test-sy.derom.com/drp-admin`, //测试
+        target: `http://test-sy.derom.com/drp-admin`, //测试
         // target: `http://release-sy.derom.com/drp-admin`, //预发
         // target: `http://sy.derom.com/drp-admin`, //生产
         // target: `http://172.16.63.202:8000/drp-admin`, // D本地
@@ -45,7 +45,7 @@ module.exports = {
         // target: `http://172.16.13.152:8000/drp-admin`, //豪哥本地
         // target: `http://172.16.13.47:8000/drp-admin`, //石杨本地
         // target: `http://172.16.13.113:8000/drp-admin`, //DWT本地
-        target: `http://172.16.13.77:8000/drp-admin`, //TQ本地
+        // target: `http://172.16.13.77:8000/drp-admin`, //TQ本地
         changeOrigin: true,
         pathRewrite: {
           ["^" + process.env.VUE_APP_BASE_API]: "",