duanxiaoduan 1 vuosi sitten
vanhempi
commit
043baff190
1 muutettua tiedostoa jossa 354 lisäystä ja 39 poistoa
  1. 354 39
      src/views/custom/subscribe/index.vue

+ 354 - 39
src/views/custom/subscribe/index.vue

@@ -92,6 +92,7 @@
       <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width" fixed="right">
         <template slot-scope="{row}">
           <el-button v-if="isSubscribeSee" type="primary" size="mini" @click="form_see(row)">查看</el-button>
+          <el-button  style="display:inline-block" type="success" size="mini" @click="form_edit1(row)">合单</el-button>
           <el-button v-if="row.statue == 4||row.statue == 6||row.statue == 8||row.statue == 10||row.statue == 12 ||row.statue == 14" style="display:inline-block" type="success" size="mini" @click="form_edit(row)">编辑</el-button>
           <el-button v-else style="display:none" type="success" size="mini" @click="form_edit(row)">编辑</el-button>
           <!-- 库管 -->
@@ -308,6 +309,8 @@
               </el-form>
             </template>
           </el-table-column>
+          <el-table-column label="部门" min-width="110px" align="center" prop="purpose" valign="middle" />
+          <el-table-column label="驳回说明" min-width="110px" align="center" prop="purpose" valign="middle" />
           <el-table-column label="备注" min-width="110px" align="center" valign="middle">
             <template slot-scope="scope">
               <el-input v-model="scope.row.purpose" />
@@ -849,9 +852,227 @@
       </div>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" :disabled="isokDisable" @click="form_add()">继续申购</el-button>
-        <el-button @click="dialogFormVisible_seepart = false;">取消</el-button>
+        <el-button @click="dialogFormVisible_seepart = false;seepart.getdataListParm.parammaps.partName = ''">取消</el-button>
       </div>
     </el-dialog>
+    <!-- 合单 -->
+    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible_modify" :close-on-click-modal="false" width="90%">
+      <div>
+        <el-form ref="modifyTemp" :rules="rules" :model="modifyTemp" label-position="right" label-width="100px" style="width: 90%;margin:0 auto;" >
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="申购单号:" prop="orderNumber">
+                <el-input ref="orderNumber" v-model="modifyTemp.orderNumber" disabled />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="牧场:" prop="pastureId">
+                <el-select v-model="modifyTemp.pastureId" placeholder="牧场" class="filter-item" style="width:100%" :disabled="dialogStatus==='update'" @change="changePasture">
+                  <el-option v-for="item in findAllPasture" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <el-table
+          :key="tableKey"
+          v-loading="listLoading"
+          element-loading-text="给我一点时间"
+          :data="modifylist"
+          border
+          fit
+          highlight-current-row
+          style="width: 100%;margin-bottom:30px"
+          :row-style="rowStyle"
+          :cell-style="cellStyle"
+          class="elTable"
+        >
+          <!-- table表格 -->
+          <el-table-column label="序号" align="center" type="index" width="50px" />
+          <el-table-column label="备件编号" prop="partCode" align="center" min-width="90" />
+          <el-table-column label="备件名称" prop="partName" align="center" min-width="90" />
+          <el-table-column label="备件规格" prop="specification" min-width="80px" align="center" />
+          <el-table-column label="计量单位" prop="unit" align="center" min-width="60" />
+          <el-table-column label="现有库存" prop="reportery" align="center" min-width="60" />
+          <el-table-column label="价格" prop="price" align="center" min-width="150">
+            <template slot-scope="scope">
+              <div v-for="item in scope.row.pricearr">
+                <el-tooltip class="item" effect="dark" placement="top-start">
+                  <div slot="content">{{item}}</div>
+                  <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{item}}</div>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="使用周期" min-width="120px" align="center">
+            <template slot-scope="scope">
+              <div v-for="item in scope.row.lifeCyclearr">
+                <el-tooltip class="item" effect="dark" placement="top-start">
+                  <div slot="content">{{item}}</div>
+                  <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{item}}</div>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="合同差异项" min-width="120px" align="center">
+            <template slot-scope="scope">
+              <div v-for="item in scope.row.contractVarianceItemarr">
+                <el-tooltip class="item" effect="dark" placement="top-start">
+                  <div slot="content">{{item}}</div>
+                  <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{item}}</div>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="部门" prop="unit" align="center" min-width="60" />
+          <el-table-column label="申购人" prop="reportery" align="center" min-width="60" />
+          <el-table-column label="申购日期" prop="reportery" align="center" min-width="60" />
+          <el-table-column label="备注" min-width="110px" align="center" valign="middle" prop="purpose" />
+          <el-table-column label="操作" align="center" width="100" class-name="small-padding fixed-width" fixed="right" >
+            <template slot-scope="{row}">
+              <a class="del" @click="partReject(row)">驳回</a>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" :disabled="isokDisable" @click="form_modify()">提交</el-button>
+        <el-button @click="dialogFormVisible_modify = false;">取消</el-button>
+      </div>
+    </el-dialog>
+
+    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisibleSee1" :close-on-click-modal="false" width="90%">
+      <div class="app-containerSee">
+        <el-form
+          ref="seeTemp"
+          :rules="rules"
+          :model="seeTemp"
+          label-position="right"
+          label-width="100px"
+          style="width: 90%;margin:0 auto;"
+        >
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="申购单号:" prop="orderNumber">
+                <el-input ref="orderNumber" v-model="seeTemp.orderNumber" disabled />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="牧场:" prop="pastureId">
+                <el-select v-model="seeTemp.pastureId" placeholder="牧场" class="filter-item" disabled style="width:100%">
+                  <el-option v-for="item in findAllPasture" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <el-table
+          :key="tableKey"
+          v-loading="listLoadingSee"
+          element-loading-text="给我一点时间"
+          :data="listSee"
+          border
+          fit
+          highlight-current-row
+          style="width: 100%;margin-bottom:30px"
+          :row-style="rowStyle"
+          :cell-style="cellStyle"
+          class="elTable"
+          @sort-change="tableSort"
+        >
+          <el-table-column type="index" label="序号" align="center" width="50px" />
+          <el-table-column label="备件编号" prop="partCode" align="center" min-width="90" />
+          <el-table-column label="备件名称" prop="partName" align="center" min-width="90" />
+          <el-table-column label="备件规格" prop="specification" min-width="90px" align="center" />
+          <el-table-column label="备件品牌" prop="brandName" align="center" min-width="60" />
+          <el-table-column label="计量单位" prop="unit" align="center" min-width="60" />
+          <el-table-column label="现有库存" sortable prop="storageAmount" align="center" min-width="60" />
+          <el-table-column label="申购数量" sortable prop="amount" align="center" min-width="60" />
+          <el-table-column label="价格" min-width="150px" align="center">
+            <template slot-scope="scope">
+              <div v-for="item in scope.row.pricearr" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
+                <el-tooltip class="item" effect="dark" placement="top-start">
+                  <div slot="content">{{item}}</div>
+                  <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{item}}</div>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="使用周期" min-width="120px" align="center">
+            <template slot-scope="scope">
+              <div v-for="item in scope.row.lifeCyclearr" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
+                <el-tooltip class="item" effect="dark" placement="top-start">
+                  <div slot="content">{{item}}</div>
+                  <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{item}}</div>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="合同差异项" min-width="120px" align="center">
+            <template slot-scope="scope">
+              <div v-for="item in scope.row.contractVarianceItemarr" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
+                <el-tooltip class="item" effect="dark" placement="top-start">
+                  <div slot="content">{{item}}</div>
+                  <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{item}}</div>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="部门" sortable prop="amount" align="center" min-width="60" />
+          <el-table-column label="申购人" sortable prop="amount" align="center" min-width="60" />
+          <el-table-column label="申购日期" sortable prop="amount" align="center" min-width="60" />
+          <el-table-column label="备注" min-width="110px" align="center" prop="purpose" />
+        </el-table>
+        <el-form ref="seeTemp" :rules="rules" :model="seeTemp" label-position="right" label-width="100px" style="width: 90%;margin:0 auto;" >
+          <el-row>
+            <el-col>
+              <el-form-item label="流程进度" />
+              <el-steps :active="active" align-center finish-status="success">
+                <el-step
+                  v-for="(item,index) in activeList"
+                  :key="index"
+                  :title="item.title"
+                  :status="item.status"
+                >
+                  <template slot="description">
+                    <div class="step-row">
+                      <div>{{ item.name }}&nbsp;&nbsp;{{ item.date }}</div>
+                      <div>{{ item.reason }}</div>
+                    </div>
+                  </template>
+                </el-step>
+              </el-steps>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col>
+              <el-form-item label="操作:">
+                <!-- 库管 -->
+                <el-button v-if="isSubscribeExamineKG && seeTemp.statue == 2" type="success" style="display:inline-block" @click="handleExamine1(row)">审核1</el-button>
+               <!-- 设备 -->
+               <el-button v-if="isSubscribeExamineSBZG && seeTemp.statue == 3" type="success" style="display:inline-block" @click="handleExamine2(row)">审核2</el-button>
+                <!-- 供应商主管 -->
+                <el-button v-if="isSubscribeExamineZG && seeTemp.statue == 9" type="success" style="display:inline-block" @click="handleExamine3(row)">审核3</el-button>
+
+                <!-- 场长 -->
+                <el-button v-if=" sdchangzhangshenhe  && (seeTemp.purchase_type < 0 || seeTemp.purchase_type == 0) && seeTemp.statue == 5" type="success" style="display:inline-block" @click="handleExamine4(row)">审核4</el-button>
+                <el-button v-if=" sdchangzhangshenhe  &&  seeTemp.statue == 13" type="success" style="display:inline-block" @click="handleExamine4(row)">审核4</el-button>
+
+
+                <!-- 采购 -->
+                <el-button v-if="isSubscribeExamineCG && seeTemp.statue == 11 " type="success" style="display:inline-block" @click="handleExamine5(row)">审核5</el-button>
+                <el-button v-if="isSubscribeExamineCW && seeTemp.purchase_type > 0 && seeTemp.statue == 5 " style="display:inline-block" type="success" size="mini" @click="handleExamine6(row)">审核6</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <div slot="footer" class="dialog-footer" style="bottom:5px;">
+          <el-button @click="dialogFormVisibleSee1 = false">关闭</el-button>
+        </div>
+      </div>
+    </el-dialog>
+
+
   </div>
 </template>
 
@@ -947,6 +1168,7 @@ export default {
       dialogFormVisible: false,
       dialogFormVisible2: false,
       dialogFormVisibleSee: false,
+      dialogFormVisibleSee1: false,
       listLoadingSee: true,
       listSee: [],
       totalSee: 0,
@@ -1039,7 +1261,12 @@ export default {
       },
       apply_subscribeData:{},
       isApplyEx4:true,
-      myHeight:document.documentElement.clientHeight - 85- 150
+      myHeight:document.documentElement.clientHeight - 85- 150,
+      dialogFormVisible_modify:false,
+      modifyTemp:{
+        orderNumber:''
+      },
+      modifylist:[{}]
     }
   },
 
@@ -1279,7 +1506,8 @@ export default {
       this.createTemp.purchaseType = '1'
       this.listAdd = []
     },
-    form_add() {
+    form_add() {
+      this.seepart.getdataListParm.parammaps.partName = ''
       this.resetCreateTemp()
       this.edit = 1
       this.getDepartParam.parammaps.pastureId = this.createTemp.pastureId
@@ -1289,14 +1517,38 @@ export default {
       this.dialogFormVisible_seepart = false
       this.$nextTick(() => {
         this.$refs['createTemp'].clearValidate()
-      })
-      this.getCreateNumber()
+      })
+      this.getBigPartpurchase()
+    },
+    getBigPartpurchase(){
+      let data = {
+        name:'getBigPartpurchase',
+        parammaps:{
+          pastureId:parseInt(Cookies.get('pastureid'))
+        }
+      }
+      GetDataByName(data).then(response => {
+        console.log(response,'response=====')
+        if(response.data.list && response.data.list.length > 0){
+          this.createTemp.markBackend = true
+          this.createTemp.pastureId = response.data.list[0].pastureId
+          this.createTemp.orderNumber = response.data.list[0].orderNumber
+          this.createTemp.createTime = response.data.list[0].inputTime
+          this.getdataListSee.parammaps.id = response.data.list[0].id
+          this.getSeeList()
+        }else{
+          this.createTemp.markBackend = true
+          this.getCreateNumber()
+        }
+
+      })
     },
     getCreateNumber() {
       GetDataByName(this.getParmCreateNumber).then(response => {
         this.$nextTick(() => {
           console.log('新增申购单号', response.data.list[0].orderCode)
-          this.createTemp.orderNumber = response.data.list[0].orderCode
+          this.createTemp.orderNumber = response.data.list[0].orderCode
+          this.modifyTemp.orderNumber = response.data.list[0].orderCode
           this.$forceUpdate()
         })
       })
@@ -1361,7 +1613,8 @@ export default {
       console.log(this.seepartList.length,'===')
       this.dialogFormVisible_seepart = true
       // this.apply_subscribeData = item
-    },
+    },
+
     seepart_search(){
       this.get_seepart_data()
     },
@@ -1561,38 +1814,65 @@ export default {
               }
             }
           }
+        }
+        if(this.createTemp.markBackend){
+          this.postDataPramas.common = { 'returnmap': '0' }
+          this.postDataPramas.data = []
+          this.postDataPramas.data[0] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.listAdd }}
+          this.postDataPramas.data[0].children = []
+          this.postDataPramas.data[0].children[0] = { 'name': 'insertPartpurchase', 'type': 'e', 'parammaps': {
+            bigId: '@insertBigPartpurchase.LastInsertId',
+            pastureId: '@insertSpotList.pastureId',
+            partId: '@insertSpotList.partId',
+            partCode: '@insertSpotList.partCode',
+            partName: '@insertSpotList.partName',
+            specification: '@insertSpotList.specification',
+            unit: '@insertSpotList.unit',
+            brandId: '@insertSpotList.brandId',
+            storageAmount: '@insertSpotList.reportery',
+            purpose: '@insertSpotList.purpose',
+            amount: '@insertSpotList.amount',
+            price: '@insertSpotList.price',
+            contractId: '@insertSpotList.contractId',
+            lifeCycle: '@insertSpotList.lifeCycle',
+            contractVarianceItem: '@insertSpotList.contractVarianceItem',
+            reject: '@insertSpotList.reject',
+            departmentId: '@insertSpotList.departmentId',
+            explain: '@insertSpotList.explain',
+          }}
+        }else{
+          this.postDataPramas.common = { 'returnmap': '0' }
+          this.postDataPramas.data = []
+          this.postDataPramas.data[0] = { 'name': 'insertBigPartpurchase', 'type': 'e', 'parammaps': {
+            pastureId: this.createTemp.pastureId,
+            departmentId: this.createTemp.departmentId,
+            orderNumber: this.createTemp.orderNumber,
+            useType: this.createTemp.useType,
+            createTime: this.createTemp.createTime,
+            employeId: this.createTemp.employeId,
+            providerId: this.createTemp.providerId
+          }}
+          // eslint-disable-next-line no-irregular-whitespace
+          this.postDataPramas.data[1] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.listAdd }}
+          this.postDataPramas.data[1].children = []
+          this.postDataPramas.data[1].children[0] = { 'name': 'insertPartpurchase', 'type': 'e', 'parammaps': {
+            bigId: '@insertBigPartpurchase.LastInsertId',
+            pastureId: '@insertSpotList.pastureId',
+            partId: '@insertSpotList.partId',
+            partCode: '@insertSpotList.partCode',
+            partName: '@insertSpotList.partName',
+            specification: '@insertSpotList.specification',
+            unit: '@insertSpotList.unit',
+            brandId: '@insertSpotList.brandId',
+            storageAmount: '@insertSpotList.reportery',
+            purpose: '@insertSpotList.purpose',
+            amount: '@insertSpotList.amount',
+            price: '@insertSpotList.price',
+            contractId: '@insertSpotList.contractId',
+            lifeCycle: '@insertSpotList.lifeCycle',
+            contractVarianceItem: '@insertSpotList.contractVarianceItem'
+          }}
         }
-        this.postDataPramas.common = { 'returnmap': '0' }
-        this.postDataPramas.data = []
-        this.postDataPramas.data[0] = { 'name': 'insertBigPartpurchase', 'type': 'e', 'parammaps': {
-          pastureId: this.createTemp.pastureId,
-          departmentId: this.createTemp.departmentId,
-          orderNumber: this.createTemp.orderNumber,
-          useType: this.createTemp.useType,
-          createTime: this.createTemp.createTime,
-          employeId: this.createTemp.employeId,
-          providerId: this.createTemp.providerId
-        }}
-        // eslint-disable-next-line no-irregular-whitespace
-        this.postDataPramas.data[1] = { 'name': 'insertSpotList', 'resultmaps': { 'list': this.listAdd }}
-        this.postDataPramas.data[1].children = []
-        this.postDataPramas.data[1].children[0] = { 'name': 'insertPartpurchase', 'type': 'e', 'parammaps': {
-          bigId: '@insertBigPartpurchase.LastInsertId',
-          pastureId: '@insertSpotList.pastureId',
-          partId: '@insertSpotList.partId',
-          partCode: '@insertSpotList.partCode',
-          partName: '@insertSpotList.partName',
-          specification: '@insertSpotList.specification',
-          unit: '@insertSpotList.unit',
-          brandId: '@insertSpotList.brandId',
-          storageAmount: '@insertSpotList.reportery',
-          purpose: '@insertSpotList.purpose',
-          amount: '@insertSpotList.amount',
-          price: '@insertSpotList.price',
-          contractId: '@insertSpotList.contractId',
-          lifeCycle: '@insertSpotList.lifeCycle',
-          contractVarianceItem: '@insertSpotList.contractVarianceItem',
-        }}
         ExecDataByConfig(this.postDataPramas).then(response => {
           console.log('新增保存发送参数', this.postDataPramas)
           if (response.msg === 'fail') {
@@ -1656,6 +1936,7 @@ export default {
       }
       this.dialogStatus = 'see'
       this.dialogFormVisibleSee = true
+      this.dialogFormVisibleSee1 = true
       this.seeTemp = Object.assign({}, row)
       this.seeTemp.purchaseType = String(row.purchase_type)
       console.log('查看上方数据(从table读取)', this.seeTemp)
@@ -2609,7 +2890,41 @@ export default {
         })
         return false
       }
-    },
+    },
+    // 合单
+    form_edit1(row){
+      this.createTemp = Object.assign({}, row) // copy obj
+      this.dialogStatus = 'update'
+      this.dialogFormVisible_modify = true
+      // this.getCreateNumber()
+    },
+    partReject(){
+      // 驳回
+      this.$prompt('请输入驳回原因:', '驳回', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        inputValidator:value =>{
+          if(value === 'null' || value === null || value === 'undefined' || value === undefined || value === ''){
+            return false
+          }
+        },
+        // inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
+        inputErrorMessage: '请输入驳回原因'
+      }).then(({ value }) => {
+        this.$message({
+          type: 'success',
+          message: '驳回原因: ' + value
+        });
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '取消输入'
+        });
+      });
+    },
+    form_modify(){
+      // 提交
+    }
   }
 }
 </script>