From f8c92594757c7a3db7188bb384f4fd2fb841604a Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 29 六月 2022 08:43:54 +0800
Subject: [PATCH] 1.完成存货档案2.修改以前bug
---
src/views/zzmx/chda.vue | 310 +++++++++++++++++++++++++++++++++------------------
1 files changed, 199 insertions(+), 111 deletions(-)
diff --git a/src/views/zzmx/chda.vue b/src/views/zzmx/chda.vue
index efadb39..8d917a7 100644
--- a/src/views/zzmx/chda.vue
+++ b/src/views/zzmx/chda.vue
@@ -25,6 +25,7 @@
:popper-append-to-body="false"
style="width: 200px"
placeholder="璇烽�夋嫨"
+ @change="val=>stocktypecodeChange(val,'form')"
>
<el-option
v-for="item in stocktypeArr"
@@ -37,6 +38,7 @@
<el-form-item label="鐗╂枡绫诲瀷" style=" display: flex;">
<el-select
v-model="form.materialtypecode"
+ :disabled="form.stocktypecode===''"
:popper-append-to-body="false"
style="width: 200px"
placeholder="璇烽�夋嫨"
@@ -83,7 +85,7 @@
:data="tableData"
border
:height="tableHeight"
- :style="{width: 100+'%',height:tableHeight+'px',}"
+ width="100%"
highlight-current-row
:header-cell-style="this.$headerCellStyle"
:cell-style="this.$cellStyle"
@@ -100,23 +102,27 @@
/>
<el-table-column
prop="partcode"
+ show-overflow-tooltip
label="鐗╂枡缂栫爜"
sortable="custom"
/>
<el-table-column
prop="partname"
+ show-overflow-tooltip
label="鐗╂枡鍚嶇О"
sortable="custom"
/>
<el-table-column
prop="partspec"
label="鐗╂枡瑙勬牸"
+ show-overflow-tooltip
+ width="110"
sortable="custom"
/>
<el-table-column
prop="uom_name"
label="鍗曚綅"
- width="120"
+ width="75"
sortable="custom"
/>
<el-table-column
@@ -132,24 +138,26 @@
<el-table-column
prop="stck_name"
label="浠撳簱鍚嶇О"
+ show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="maxqty"
label="搴撳瓨涓婇檺"
- width="120"
+ width="110"
sortable="custom"
/>
<el-table-column
prop="minqty"
label="搴撳瓨涓嬮檺"
- width="120"
+ width="110"
sortable="custom"
/>
<el-table-column
prop="lm_user"
label="鍒涘缓浜哄憳"
sortable="custom"
+ width="110"
/>
<el-table-column
prop="lm_date"
@@ -162,10 +170,18 @@
width="80"
>
<template slot-scope="{row}">
- <div class="operationClass" style="justify-content: center;width: 100%">
+ <div class="operationClass">
<i class="el-icon-share" @click="routeClick(row)" />
-
- <!-- <el-button type="text" @click="edit('edit',row)">淇敼</el-button>-->
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button type="text" @click="edit('edit',row)">淇敼</el-button>
+ <el-button type="text" @click="del(row)">鍒犻櫎</el-button>
</div>
</template>
</el-table-column>
@@ -183,6 +199,7 @@
@pagination="getInventoryFileSelect"
/>
</div>
+
<!--鏂板缂栬緫瀵硅瘽妗�-->
<el-dialog
:title="operation==='add'?'鏂板':'淇敼'"
@@ -193,18 +210,33 @@
@close="handleClose"
>
<el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
- <el-form-item label="鐗╂枡缂栫爜" prop="OrgCode">
- <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 220px" />
+ <el-form-item label="鐗╂枡缂栫爜" prop="materialcode">
+ <el-input v-model="dialogForm.materialcode" :disabled="operation!=='add'" style="width: 220px" />
</el-form-item>
- <el-form-item label="鐗╂枡鍚嶇О" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+ <el-form-item label="鐗╂枡鍚嶇О" prop="materialname">
+ <el-input v-model="dialogForm.materialname" style="width: 220px" />
</el-form-item>
- <el-form-item label="鐗╂枡瑙勬牸" prop="OrgName">
- <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+ <el-form-item label="鐗╂枡瑙勬牸" prop="materialspec">
+ <el-input v-model="dialogForm.materialspec" style="width: 220px" />
</el-form-item>
- <el-form-item label="浣跨敤鍗曚綅">
+ <el-form-item label="浣跨敤鍗曚綅" prop="uomcode">
<el-select
- v-model="dialogForm.stockcode"
+ v-model="dialogForm.uomcode"
+ :popper-append-to-body="false"
+ style="width: 220px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in uomArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎵�灞炰粨搴�" prop="warehousecode">
+ <el-select
+ v-model="dialogForm.warehousecode"
:popper-append-to-body="false"
style="width: 220px"
placeholder="璇烽�夋嫨"
@@ -217,27 +249,13 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="鎵�灞炰粨搴�">
+ <el-form-item label="瀛樿揣绫诲瀷" prop="stocktypecode">
<el-select
- v-model="dialogForm.stockcode"
+ v-model="dialogForm.stocktypecode"
:popper-append-to-body="false"
style="width: 220px"
placeholder="璇烽�夋嫨"
- >
- <el-option
- v-for="item in storehouseArr"
- :key="item.code"
- :label="item.name"
- :value="item.code"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="瀛樿揣绫诲瀷">
- <el-select
- v-model="dialogForm.stockcode"
- :popper-append-to-body="false"
- style="width: 220px"
- placeholder="璇烽�夋嫨"
+ @change="val=>stocktypecodeChange(val,'dialogForm')"
>
<el-option
v-for="item in stocktypeArr"
@@ -247,26 +265,27 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="鐗╂枡绫诲瀷">
+ <el-form-item label="鐗╂枡绫诲瀷" prop="materialtypecode">
<el-select
- v-model="dialogForm.stockcode"
+ v-model="dialogForm.materialtypecode"
:popper-append-to-body="false"
style="width: 220px"
+ :disabled="dialogForm.stocktypecode===''"
placeholder="璇烽�夋嫨"
>
<el-option
- v-for="item in materialtypeArr"
+ v-for="item in materialtypeDialogArr"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</el-form-item>
- <el-form-item label="鏈�灏忓簱瀛�" prop="SupUnit">
- <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+ <el-form-item label="鏈�灏忓簱瀛�" prop="minstockqty">
+ <el-input v-model="dialogForm.minstockqty" style="width: 220px" />
</el-form-item>
- <el-form-item label="鏈�澶у簱瀛�" prop="SupUnit">
- <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+ <el-form-item label="鏈�澶у簱瀛�" prop="maxstockqty">
+ <el-input v-model="dialogForm.maxstockqty" style="width: 220px" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@@ -294,7 +313,7 @@
:data="officeTableData"
border
highlight-current-row
- :style="{width: 100+'%',height:tableHeight-300+'px'}"
+ height="400"
:header-cell-style="this.$headerCellStyle"
:cell-style="this.$cellStyle"
@sort-change="sortChangeOfOffice"
@@ -344,8 +363,8 @@
label="鍙栨暣瑙勫垯"
sortable="custom"
>
+
<template slot-scope="{row}">
- <!-- <el-input v-if="row.isVisible===1" v-model="row.r_ule" placeholder="璇疯緭鍏�" />-->
<el-select
v-if="row.isVisible===1"
v-model="row.r_ule"
@@ -361,7 +380,9 @@
:value="item.code"
/>
</el-select>
- <div v-else> {{ row.r_ule }}</div>
+ <div v-else-if="row.isVisible===0&&row.r_ule==='RU'">鍚戜笂鍙栨暣</div>
+ <div v-else-if="row.isVisible===0&&row.r_ule==='RD'">鍚戜笅鍙栨暣</div>
+ <div v-else-if="row.isVisible===0&&row.r_ule==='RO'">鍥涜垗浜斿叆</div>
</template>
</el-table-column>
@@ -440,8 +461,7 @@
<el-table
:data="projectTableData"
border
- :height="tableHeight"
- :style="{width: 100+'%',height:tableHeight+'px',}"
+ height="400"
highlight-current-row
:header-cell-style="this.$headerCellStyle"
:cell-style="this.$cellStyle"
@@ -488,7 +508,15 @@
} from '@/api/jcsz'
import { getCookie } from '@/utils/auth'
import { WareHouseSelect } from '@/api/wlgl'
-import { InventoryFileSelect, StockTypeSelect, UomAdd, UomSearch } from '@/api/zzmx'
+import {
+ AddUpdateInventoryFile, DeleteInventoryFile, InventoryFileAssociationRoute,
+ InventoryFileSelect, SaveInventoryFile,
+ StockTypeSelect,
+ StockTypeSelectMaterialType,
+ UomAdd,
+ UomDelete,
+ UomSearch, UomSelect
+} from '@/api/zzmx'
import $ from 'jquery'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
@@ -500,20 +528,13 @@
data() {
const validateName = (rule, value, callback) => {
if (!value) {
- return callback(new Error('璇疯緭鍏ョ紪鐮�'))
+ return callback(new Error('璇疯緭鍏ョ墿鏂欑紪鐮�'))
} else {
if (SER_HZ.test(value)) {
return callback(new Error('缂栫爜涓嶈兘涓轰腑鏂�'))
} else {
callback()
}
- }
- }
- const validateTypeCode = (rule, value, callback) => {
- if (!value) {
- return callback(new Error('璇烽�夋嫨涓婄骇'))
- } else {
- callback()
}
}
return {
@@ -538,24 +559,50 @@
tableData: [],
dialogVisible: false,
dialogForm: {
- OrgType: '',
- OrgCode: '',
- OrgName: ''
+ id: '', // 鐗╂枡id
+ materialcode: '', // 鐗╂枡缂栫爜
+ materialname: '', // 鐗╂枡鍚嶇О
+ materialspec: '', // 鐗╂枡瑙勬牸
+ uomcode: '', // 鍗曚綅缂栫爜
+ warehousecode: '', // 鎵�灞炰粨搴撶紪鐮�
+ stocktypecode: '', // 瀛樿揣绫诲瀷缂栫爜
+ materialtypecode: '', // 鐗╂枡绫诲瀷缂栫爜
+ minstockqty: '', // 鏈�灏忓簱瀛�
+ maxstockqty: '', // 鏈�澶у簱瀛�
+ OperType: '' // 鎿嶄綔绫诲瀷
},
+ uomArr: [], // 鍗曚綅鏁扮粍缂栫爜
+ materialtypeDialogArr: [], // 瀵硅瘽妗嗕腑鐗╂枡绫诲瀷鏁扮粍
operation: '',
dialogFormRules: {
- OrgType: [
- { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
- ],
- OrgCode: [
+ materialcode: [
{ required: true, validator: validateName, trigger: ['blur', 'change'] }
],
- OrgName: [
- { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ materialname: [
+ { required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉�', trigger: ['blur', 'change'] }
],
- SupUnit: [
- { required: true, validator: validateTypeCode, trigger: ['blur', 'change'] }
+ materialspec: [
+ { required: true, message: '璇疯緭鍏ョ墿鏂欒鏍�', trigger: ['blur', 'change'] }
+ ],
+ uomcode: [
+ { required: true, message: '璇烽�夋嫨浣跨敤鍗曚綅', trigger: ['blur', 'change'] }
+ ],
+ warehousecode: [
+ { required: true, message: '璇烽�夋嫨鎵�灞炰粨搴�', trigger: ['blur', 'change'] }
+ ],
+ stocktypecode: [
+ { required: true, message: '璇烽�夋嫨瀛樿揣绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ materialtypecode: [
+ { required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨�', trigger: ['blur', 'change'] }
+ ],
+ minstockqty: [
+ { required: true, message: '璇疯緭鍏ユ渶灏忓簱瀛�', trigger: ['blur', 'change'] }
+ ],
+ maxstockqty: [
+ { required: true, message: '璇疯緭鍏ユ渶澶у簱瀛�', trigger: ['blur', 'change'] }
]
+
},
officeDialogVisible: false,
officeForm: {
@@ -599,9 +646,24 @@
async getStockTypeSelect() {
const { data: res } = await StockTypeSelect()
this.stocktypeArr = res
- }, async getWareHouseSelect() {
+ },
+ async getWareHouseSelect() {
const { data: res } = await WareHouseSelect()
this.storehouseArr = res
+ },
+ async getuomSelect() {
+ const { data: res } = await UomSelect()
+ this.uomArr = res
+ },
+ async stocktypecodeChange(val, param) {
+ const { data: res } = await StockTypeSelectMaterialType({ stocktypecode: val })
+ if (param === 'form') {
+ this.form.materialtypecode = ''
+ this.materialtypeArr = res
+ } else if (param === 'dialogForm') {
+ this.dialogForm.materialtypecode = ''
+ this.materialtypeDialogArr = res
+ }
},
// 鎺掑簭鏀瑰彉鏃�
sortChange({ column, prop, order }) {
@@ -637,26 +699,34 @@
add(operation) {
this.operation = operation
this.dialogVisible = true
+ this.getuomSelect()
},
// 淇敼鎸夐挳
- edit(operation, row) {
+ async edit(operation, row) {
this.operation = operation
this.dialogVisible = true
-
+ await this.stocktypecodeChange(row.stocktypecode, 'dialogForm')
this.$nextTick(() => {
- this.dialogForm.OrgCode = row.org_code
- this.dialogForm.OrgName = row.org_name
- this.dialogForm.SupUnit = row.parent_id
+ this.dialogForm.id = row.id
+ this.dialogForm.materialcode = row.partcode
+ this.dialogForm.materialname = row.partname
+ this.dialogForm.materialspec = row.partspec
+ this.dialogForm.uomcode = row.uom_code
+ this.dialogForm.warehousecode = row.stck_code
+ this.dialogForm.stocktypecode = row.stocktypecode
+ this.dialogForm.materialtypecode = row.materialtypecode
+ this.dialogForm.minstockqty = row.maxqty
+ this.dialogForm.maxstockqty = row.minqty
})
},
// 鍒犻櫎鎸夐挳
- async del(id) {
+ async del(row) {
this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
confirmButtonText: '纭畾',
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- DeleteOrganization({ orgid: id }).then(res => {
+ DeleteInventoryFile({ materialcode: row.partcode }).then(res => {
if (res.code === '200') {
this.$message.success('鍒犻櫎鎴愬姛!')
this.getInventoryFileSelect()
@@ -668,10 +738,15 @@
},
// 瀵硅瘽妗嗗叧闂簨浠�
handleClose() {
- this.dialogForm.OrgType = ''
- this.dialogForm.OrgCode = ''
- this.dialogForm.OrgName = ''
- this.dialogForm.SupUnit = ''
+ this.dialogForm.materialcode = ''
+ this.dialogForm.materialname = ''
+ this.dialogForm.materialspec = ''
+ this.dialogForm.uomcode = ''
+ this.dialogForm.warehousecode = ''
+ this.dialogForm.stocktypecode = ''
+ this.dialogForm.materialtypecode = ''
+ this.dialogForm.minstockqty = ''
+ this.dialogForm.maxstockqty = ''
this.$refs.dialogForm.clearValidate()
},
// 瀵硅瘽妗嗗彇娑�
@@ -683,12 +758,19 @@
this.$refs.dialogForm.validate(valid => {
if (valid) {
const data = {
- OrganCode: this.dialogForm.OrgCode,
- OrganName: this.dialogForm.OrgName,
- OperType: this.operation === 'add' ? 'Add' : 'Update',
- Operator: getCookie('admin')
+ id: this.dialogForm.id,
+ materialcode: this.dialogForm.materialcode,
+ materialname: this.dialogForm.materialname,
+ materialspec: this.dialogForm.materialspec,
+ uomcode: this.dialogForm.uomcode,
+ warehousecode: this.dialogForm.warehousecode,
+ stocktypecode: this.dialogForm.stocktypecode,
+ materialtypecode: this.dialogForm.materialtypecode,
+ minstockqty: this.dialogForm.minstockqty,
+ maxstockqty: this.dialogForm.maxstockqty,
+ OperType: this.operation === 'add' ? 'Add' : 'Update'
}
- AddUpdateOrganization(data).then(res => {
+ AddUpdateInventoryFile(data).then(res => {
if (res.code === '200') {
this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
this.dialogVisible = false
@@ -709,13 +791,17 @@
},
/* 鐐瑰嚮鍏宠仈宸ヨ壓璺嚎妯″潡*/
// 宸ヨ壓璺嚎鐐瑰嚮
- async routeClick(row) {
+ async routeClick(row) {
console.log(row)
this.dialogFormRoute.projectCode = row.partcode
this.dialogFormRoute.projectName = row.partname
this.dialogVisibleRoute = true
- this.dialogFormRoute.routeOperationArr = [
- { 'flag': 'Y', code: '001', name: '娴嬭瘯1 ',
+ const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
+ this.dialogFormRoute.routeOperationArr = res
+ // let waitFlag = false// 鍥炴樉绛夊緟鏄惁鏀捐
+ this.dialogFormRoute.routeOperationArrTest = [
+ {
+ 'flag': 'Y', code: '001', name: '娴嬭瘯1 ',
'Data': [
{
'seq': 1,
@@ -735,7 +821,8 @@
}
]
},
- { 'flag': 'N', code: '002', name: '娴嬭瘯2 ',
+ {
+ 'flag': 'Y', code: '002', name: '娴嬭瘯2 ',
'Data': [
{
'seq': 1,
@@ -765,7 +852,8 @@
}
]
},
- { 'flag': 'N', code: '003', name: '娴嬭瘯3 ',
+ {
+ 'flag': 'N', code: '003', name: '娴嬭瘯3 ',
'Data': [
{
'seq': 1,
@@ -776,7 +864,8 @@
]
},
- { 'flag': 'N', code: '004', name: '娴嬭瘯4 ',
+ {
+ 'flag': 'Y', code: '004', name: '娴嬭瘯4 ',
'Data': [
{
'seq': 1,
@@ -792,9 +881,6 @@
]
}
]
- // const res = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
-
- // let waitFlag = false// 鍥炴樉绛夊緟鏄惁鏀捐
this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
item.isSelected1 = false
@@ -829,27 +915,27 @@
},
// 鍙栨秷
routeDialogVisibleCancel() {
-
+ this.dialogVisibleRoute = false
},
// 纭畾
- async routeDialogVisibleConfirm() {
+ async routeDialogVisibleConfirm() {
const data = []
this.dialogFormRoute.routeOperationArr.forEach(item => {
if (item.isSelected2) {
data.push({ code: item.code, name: item.name })
}
})
- // const res=await xxx()
+ const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, data)
+ if (res.code === '200') {
+ this.$message.success('淇濆瓨鎴愬姛锛�')
+ this.dialogVisibleRoute = false
+ }
},
// 澶х洅瀛愮偣鍑讳簨浠�
myCheckboxClick(val) {
console.log(val, 1)
this.dialogFormRoute.routeOperationArr.forEach(item => {
- if (val.code === item.code) {
- item.isSelected1 = true
- } else {
- item.isSelected1 = false
- }
+ item.isSelected1 = val.code === item.code
})
this.projectTableData = val.Data
@@ -875,7 +961,9 @@
},
// 鏂板
addOffice() {
- const data = { code: '', name: '', digdect: '', r_ule: '', isVisible: 1 }
+ let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+ number = number === 0 ? Math.random() * Math.random() : number
+ const data = { code: '', name: '', digdect: '', r_ule: '', isVisible: 1, number: number }
this.officeTableData.unshift(data)
},
// 鍒犻櫎
@@ -885,12 +973,12 @@
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- // RoleTypeDelete({ RoleTypeCode: row.code }).then(res => {
- // if (res.code === '200') {
- // this.$message.success('鍒犻櫎鎴愬姛!')
- // this.getRoleTypeSearch()
- // }
- // })
+ UomDelete({ uomcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ this.getRoleTypeSearch()
+ }
+ })
}).catch(() => {
this.$message.info('宸插彇娑堝垹闄�')
})
@@ -915,7 +1003,7 @@
digdect: row.digdect,
r_ule: row.r_ule
}
- const res = await UomAdd(data)
+ const res = await UomAdd([data])
if (res.code === '200') {
this.$message.success('淇濆瓨鎴愬姛锛�')
await this.getUomSearch()
@@ -924,7 +1012,7 @@
// 鍙栨秷
cancelOffice(row) {
this.officeTableData.forEach((item, index) => {
- if (item.isVisible === 1 && item.code === row.code) {
+ if (item.isVisible === 1 && item.number === row.number) {
this.officeTableData.splice(index, 1)
}
})
@@ -1012,13 +1100,13 @@
padding: 20px 100px !important;
}
-.dialogVisibleRoute{
+.dialogVisibleRoute {
::v-deep .el-dialog__body {
padding: 20px 20px !important;
}
}
-.officeDialogVisible{
+.officeDialogVisible {
::v-deep .el-dialog__body {
padding: 20px 20px !important;
}
@@ -1127,13 +1215,13 @@
color: $main_color;
}
-::v-deep .el-select .el-input .el-select__caret{
+::v-deep .el-select .el-input .el-select__caret {
display: flex;
align-items: center;
justify-content: center;
}
-.dialogVisibleRoute{
+.dialogVisibleRoute {
.myCheckboxGroup {
display: flex;
flex-wrap: wrap;
--
Gitblit v1.9.3