whj 1 жил өмнө
parent
commit
daaa80a93d

+ 41 - 3
src/api/purchase/purchase-order.js

@@ -138,7 +138,19 @@ export function updatePurchaseOrder (parameter) {
     data: parameter
   })
 }
-
+/**
+ * update func
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function updatePurchaseOrder2 (parameter) {
+  return axios({
+    url: '/longyanpurchaseorder/order/' + parameter.id,
+    method: 'PUT',
+    data: parameter
+  })
+}
 /**
  * get func
  * parameter: { }
@@ -269,7 +281,21 @@ export function queryPurchaseOrder (parameter) {
     }
   })
 }
-
+/**
+ * query list func
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function getPurchaseOrderInfo (parameter) {
+  return axios({
+    url: '/longyanpurchaseorder/order/get/' + parameter.id,
+    method: 'get',
+    headers: {
+      'Content-Type': 'application/json;charset=UTF-8'
+    }
+  })
+}
 /**
  * delete batch func
  * parameter: { }
@@ -283,7 +309,19 @@ export function deletePurchaseOrders (parameter) {
     data: parameter
   })
 }
-
+/**
+ * delete single func
+ * parameter: { }
+ * @param parameter
+ * @returns {*}
+ */
+export function deletePurchaseOrder2 (parameter) {
+  return axios({
+    url: '/longyanpurchaseorder/order/' + parameter.id,
+    method: 'DELETE',
+    data: parameter
+  })
+}
 /**
  * delete single func
  * parameter: { }

+ 30 - 34
src/views/purchase/purchase-order-page/PurchaseOrderPage.vue

@@ -21,7 +21,7 @@
 
       <div class="table-operator" style="margin-bottom: 8px;">
         <a-button v-if="$auth('purchase-purchase-orders-add')" type="primary" icon="plus" @click="$refs.baseForm.base()">新增</a-button>
-        <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && $auth('purchase-purchase-orders-del')">
+        <!-- <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && $auth('purchase-purchase-orders-del')">
           <a-menu slot="overlay">
             <a-popconfirm title="是否要删除所选数据?" @confirm="batchDelete()">
               <a-menu-item key="1"><a-icon type="delete" /><a>删除</a></a-menu-item>
@@ -30,7 +30,7 @@
           <a-button style="margin-left: 8px">
             批量操作 <a-icon type="down" />
           </a-button>
-        </a-dropdown>
+        </a-dropdown> -->
       </div>
 
       <s-table
@@ -45,24 +45,37 @@
         showPagination="auto"
       >
         <span slot="action" slot-scope="record">
-
+          <a @click="handleView(record)">查看</a>
+          <operation-button
+            v-if=" record.status===1"
+            @click="handleEdit(record)"
+          >修改</operation-button>
+          <operation-button
+            v-if=" record.status===1"
+            :type="2"
+            title="是否要删除该条数据?"
+            @confirm="batchDelete(record.id)">删除</operation-button>
         </span>
       </s-table>
     </div>
     <BaseForm ref="baseForm" @ok="handleOk"/>
+    <Detail ref="detail" @ok="handleOk"/>
   </a-card>
 </template>
 
 <script>
 import { STable, Ellipsis } from '@/components'
-import { getPurchaseOrderPage2, deletePurchaseOrders } from '@/api/purchase/purchase-order'
+import { getPurchaseOrderPage2, deletePurchaseOrder2, getPurchaseOrderInfo } from '@/api/purchase/purchase-order'
 import BaseForm from './modules/BaseForm.vue'
+import Detail from './modules/Detail.vue'
+
 export default {
   name: 'PurchaseOrderList',
   components: {
     STable,
     Ellipsis,
-    BaseForm
+    BaseForm,
+    Detail
   },
   data () {
     return {
@@ -142,10 +155,6 @@ export default {
       ],
       // 下拉框map
       typeMap: {},
-      statusMap: {},
-      payTypeMap: {},
-      invoiceTypeMap: {},
-      moneyTypeMap: {},
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
         parameter = {
@@ -163,12 +172,10 @@ export default {
       },
       selectedRowKeys: [],
       selectedRows: [],
-
       options: {
         alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
         rowSelection: {
-          selectedRowKeys: this.selectedRowKeys,
-          onChange: this.onSelectChange
+          selectedRowKeys: this.selectedRowKeys
         }
       },
       optionAlertShow: false
@@ -177,11 +184,6 @@ export default {
   created () {
     // 下拉框map
     this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.LONG_YAN_PURCHASE_TYPE)
-
-    this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.PURCHASE_ORDER_STATUS)
-    this.payTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.PURCHASE_PAY_TYPE)
-    this.invoiceTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.PURCHASE_INVOICE_TYPE)
-    this.moneyTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.MONEY_TYPE)
     this.tableOption()
   },
   methods: {
@@ -191,7 +193,6 @@ export default {
           alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
           rowSelection: {
             selectedRowKeys: this.selectedRowKeys,
-            onChange: this.onSelectChange,
             getCheckboxProps: record => ({
               props: {
                 disabled: false,
@@ -213,28 +214,13 @@ export default {
       this.visible = true
       this.$refs.table.refresh()
     },
-    onSelectChange (selectedRowKeys, selectedRows) {
-      this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
-    },
     resetSearchForm () {
       this.queryParam = {
       }
       this.$refs.table.refresh(true)
     },
     batchDelete (id) {
-      let ids = []
-      if (this.BaseTool.String.isBlank(id)) {
-        const length = this.selectedRows.length
-        if (length === 0) {
-          this.$message.info('请选择要删除的记录')
-          return
-        }
-        ids = this.selectedRows.map(item => item.id)
-      } else {
-        ids = [id]
-      }
-      deletePurchaseOrders(ids).then(res => {
+      deletePurchaseOrder2({ id }).then(res => {
         this.$message.info('删除成功')
         this.handleOk()
         this.$refs.table.clearSelected()
@@ -242,6 +228,16 @@ export default {
     },
     handleEnter () {
       this.$refs.table.refresh(true)
+    },
+    handleEdit (record) {
+      getPurchaseOrderInfo(record).then(res => {
+        this.$refs.baseForm.base(res.data)
+      })
+    },
+    handleView (record) {
+      getPurchaseOrderInfo(record).then(res => {
+        this.$refs.detail.base(res.data)
+      })
     }
   }
 }

+ 39 - 14
src/views/purchase/purchase-order-page/modules/BaseForm.vue

@@ -1,6 +1,6 @@
 <template>
   <a-modal
-    title="新增"
+    :title="title"
     :width="1400"
     :visible="visible"
     :confirmLoading="confirmLoading"
@@ -15,7 +15,7 @@
         <row-list :col="1" v-show="false">
           <row-item>
             <a-form-item>
-              <!-- <a-input v-decorator="['id']" type="hidden"/> -->
+              <a-input v-decorator="['id']" type="hidden"/>
               <a-input v-decorator="['sbId']" type="hidden"/>
             </a-form-item>
           </row-item>
@@ -52,7 +52,7 @@
               :labelCol="BaseTool.Constant.labelCol"
               :wrapperCol="BaseTool.Constant.wrapperCol"
             >
-              <a-select v-decorator="['oldOrNew', {rules: [{required: true, message: '厂区不能为空'}]}]" @change="setTree">
+              <a-select :disabled="title==='编辑'" v-decorator="['oldOrNew', {rules: [{required: true, message: '厂区不能为空'}]}]" @change="setTree">
                 <a-select-option
                   v-for="(label,value) in flagMap"
                   :key="value"
@@ -64,7 +64,7 @@
           </a-col>
           <a-col :sm="20" >
             <a-form-item
-              label="项目"
+              label="项目"
               :labelCol="BaseTool.Constant.labelCol"
               :wrapperCol="BaseTool.Constant.wrapperCol"
             >
@@ -87,8 +87,8 @@
               <a-input
                 style="width: 70%"
                 disabled
-                v-decorator="['positionNo', {rules: [{required: true, message: '设备名称不能为空'}]}]" />
-              <a-button style="width: 30%" type="primary" @click="handleSbSelect">选择</a-button>
+                v-decorator="['positionNo', {rules: [{required: true, message: '设备位号不能为空'}]}]" />
+              <a-button :disabled="title==='编辑'" style="width: 30%" type="primary" @click="handleSbSelect">选择</a-button>
             </a-form-item>
           </a-col>
           <a-col :sm="20" >
@@ -147,8 +147,8 @@
 </template>
 
 <script>
-import { addPurchaseOrder2 } from '@/api/purchase/purchase-order'
-
+import pick from 'lodash.pick'
+import { addPurchaseOrder2, updatePurchaseOrder2 } from '@/api/purchase/purchase-order'
 import SbInfoSelectModal from './SbInfoSelectModal'
 import SpareStoreSelectModal from '@/views/store/sparestore/modules/SpareStoreSelectModalYY.vue'
 import BomSpareStoreSelectModal from './SpareStoreSelectModalYY.vue'
@@ -166,6 +166,7 @@ export default {
     return {
       form: this.$form.createForm(this),
       visible: false,
+      title: '新增',
       current: 0,
       data: [],
       treeData: [],
@@ -240,6 +241,25 @@ export default {
   methods: {
     base (record) {
       this.visible = true
+      if (this.BaseTool.Object.isBlank(record)) {
+        this.title = '新增'
+        return
+      }
+      this.title = '编辑'
+      this.data = record.detailVOS
+      const { form: { setFieldsValue } } = this
+      this.$nextTick(() => {
+        setFieldsValue(Object.assign(pick(record, [
+          'id',
+          'sbId',
+          'orderName',
+          'type',
+          'oldOrNew',
+          'projectId',
+          'positionNo',
+          'remark'
+        ])))
+      })
     },
     // 获取巡检人与巡检主管信息
 
@@ -252,7 +272,6 @@ export default {
       const { form: { setFieldsValue } } = this
       this.sbId = key
       // 日期处理
-
       this.$nextTick(() => {
         setFieldsValue(Object.assign({
           'sbId': key,
@@ -274,11 +293,17 @@ export default {
         ...this.params,
         detailDTOS: this.data
       }
-      console.log(params)
-      addPurchaseOrder2(params).then(res => {
-        this.$message.success('创建成功!')
-        this.handleCancel()
-      })
+      if (params.id) {
+        addPurchaseOrder2(params).then(res => {
+          this.$message.success('创建成功!')
+          this.handleCancel()
+        })
+      } else {
+        updatePurchaseOrder2(params).then(res => {
+          this.$message.success('修改成功!')
+          this.handleCancel()
+        })
+      }
     },
     next () {
       const { form: { validateFieldsAndScroll } } = this

+ 106 - 0
src/views/purchase/purchase-order-page/modules/Detail.vue

@@ -0,0 +1,106 @@
+<template>
+  <a-modal
+    :title="modalTitle"
+    :width="1200"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    class="ant-modal2"
+    @cancel="handleCancel"
+  >
+    <detail-list title="" :col="2">
+      <detail-list-item term="采购计划名称">{{ model.orderName }}</detail-list-item>
+      <detail-list-item term="采购计划类型">{{ BaseTool.Object.getField(typeMap,model.type) }}</detail-list-item>
+      <detail-list-item term="厂区">{{ BaseTool.Object.getField(flagMap,model.oldOrNew) }}</detail-list-item>
+      <detail-list-item term="项目">{{ model.complateProjectName }}</detail-list-item>
+      <detail-list-item term="设备位号">{{ model.positionNo }}</detail-list-item>
+      <detail-list-item term="备注">{{ model.remark }}</detail-list-item>
+      <detail-list-item term="创建人">{{ model.createdUserName }}</detail-list-item>
+      <detail-list-item term="更新日期">{{ model.updateTime }}</detail-list-item>
+    </detail-list>
+
+    <title-divider title="采购单明细" width="120px"></title-divider>
+    <a-table
+      bordered
+      :data-source="model.detailVOS"
+      :columns="columns"
+      tableLayout="auto"
+      rowKey="id"
+    >
+    </a-table>
+    <template slot="footer">
+      <a-button :loading="confirmLoading" type="primary" @click="handleCancel()">返回</a-button>
+    </template>
+  </a-modal>
+</template>
+
+<script>
+import DetailList from '@/components/tools/DetailList'
+const DetailListItem = DetailList.Item
+export default {
+  name: 'PurchasePaymentDetail',
+  components: {
+    DetailList,
+    DetailListItem
+  },
+  data () {
+    return {
+      confirmLoading: false,
+      mdl: {},
+      modalTitle: null,
+      visible: false,
+      // 下拉框map
+      typeMap: {},
+      flagMap: {},
+      invoiceUrls: [],
+      moneyTypeMap: {},
+      model: {
+      },
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          customRender: (text, record, index) => {
+            return index + 1
+          }
+        },
+        {
+          title: '名称',
+          dataIndex: 'spareName'
+        },
+        {
+          title: '编号',
+          dataIndex: 'no'
+        },
+        {
+          title: '规格',
+          dataIndex: 'ggxh'
+        },
+
+        {
+          title: '采购数量',
+          dataIndex: 'num',
+          width: 150,
+          scopedSlots: { customRender: 'num' }
+        }
+      ]
+    }
+  },
+  created () {
+    // 下拉框map
+    this.flagMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.PROJECT_NEW_AND_OLD)
+    this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.LONG_YAN_PURCHASE_TYPE)
+  },
+  methods: {
+    base (record) {
+      this.visible = true
+      this.modalTitle = '详情'
+      this.model = record
+    },
+    handleCancel () {
+      this.visible = false
+      this.confirmLoading = false
+    }
+
+  }
+}
+</script>