From bb2ed2e56da26a6b79575f5be9f60ca2d90774d0 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期四, 01 八月 2024 17:17:32 +0800
Subject: [PATCH] 1.工序、工价界面优化
---
src/views/basicSettings/meterPrice.vue | 134 ++++++++++++++++++++++++++++----
src/views/basicSettings/processList.vue | 84 +++++++++++++++++---
src/api/GeneralBasicData.js | 18 ++++
3 files changed, 202 insertions(+), 34 deletions(-)
diff --git a/src/api/GeneralBasicData.js b/src/api/GeneralBasicData.js
index df40fdf..7202f30 100644
--- a/src/api/GeneralBasicData.js
+++ b/src/api/GeneralBasicData.js
@@ -157,6 +157,24 @@
})
}
+// 寰�鏉ュ崟浣嶇被鍨嬪熀纭�璧勬枡
+export function CustomerTypePermissions(data) {
+ return request({
+ url: 'GeneralBasicData/CustomerTypePermissions',
+ method: 'get',
+ params: data
+ })
+}
+
+// 寰�鏉ュ崟浣嶇被鍨嬫煡鎵惧線鏉ュ崟浣嶅熀纭�璧勬枡
+export function CustomerTypeSearchPermission(data) {
+ return request({
+ url: 'GeneralBasicData/CustomerTypeSearchPermissions',
+ method: 'get',
+ params: data
+ })
+}
+
// 瀛樿揣鏍戝瀷鍩虹璧勬枡
export function InventoryTreePermissions(data) {
return request({
diff --git a/src/views/basicSettings/meterPrice.vue b/src/views/basicSettings/meterPrice.vue
index d1ee3d0..7d5ea87 100644
--- a/src/views/basicSettings/meterPrice.vue
+++ b/src/views/basicSettings/meterPrice.vue
@@ -192,7 +192,7 @@
:title="operation==='add'?'鏂板':'缂栬緫'"
:visible.sync="dialogVisible"
width="1100px"
- top="15vh"
+ top="5vh"
:close-on-click-modal="false"
@closed="handleClose"
@close="handleClose"
@@ -252,28 +252,101 @@
</el-form-item>
</div>
</el-form>
-
+ <!-- :expand-row-keys="expandRowKeys"-->
+ <!-- row-key="code"-->
<el-table
:data="stepDialogArr"
style="width: 100%"
- height="300"
+ height="600"
+
border
:header-cell-style="this.$headerCellStyle"
:cell-style="this.$cellStyle"
:row-class-name="tableRowClassName"
>
+ <el-table-column type="expand">
+ <template slot-scope="props">
+ <el-table
+ :data="props.row.children"
+ style="width: 96%;margin: auto;"
+ border
+ :row-class-name="tableRowClassName"
+ >
+ <el-table-column
+ prop="eqp_code"
+ label="璁惧/寰�鏉ョ紪鐮�"
+ min-width="120"
+ />
+ <el-table-column
+ prop="eqp_name"
+ label="璁惧/寰�鏉ュ悕绉�"
+ min-width="120"
+ />
+ <el-table-column
+ prop="eqp_value"
+ label="璁惧鑺傛媿"
+ min-width="150"
+ >
+ <template slot-scope="{row}">
+ <div style="display: flex">
+ <el-input
+ v-model="row.eqp_value"
+ placeholder="璇疯緭鍏�"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ @change="val=>eqpValueChange(val,row)"
+ />
+ <div style="margin-left: 5px">绉�</div>
+ </div>
+
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="stand_value"
+ label="鐢熶骇鑺傛媿"
+ min-width="120"
+ >
+ <template slot-scope="{row}">
+ <div>{{ row.stand_value + ' ' + '绉�' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="cavity_qty"
+ label="鑵斿瀷鏁�"
+ min-width="120"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.cavity_qty"
+ placeholder="璇疯緭鍏�"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ @change="val=>cavityQtyChange(val,row)"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="unprice"
+ label="宸ュ簭宸ヤ环"
+ min-width="120"
+ >
+ <template slot-scope="{row}">
+ <el-input v-model="row.unprice" oninput="value=value.replace(/[^0-9.]/g,'')" />
+ </template>
+ </el-table-column>
+ </el-table>
+ </template>
+ </el-table-column>
<el-table-column
- prop="step_seq"
+ prop="seq"
label="宸ュ簭椤哄簭"
width="100"
/>
<el-table-column
- prop="step_code"
+ prop="code"
label="宸ュ簭缂栫爜"
width="200"
/>
<el-table-column
- prop="step_name"
+ prop="name"
label="宸ュ簭鍚嶇О"
width="200"
/>
@@ -479,8 +552,9 @@
editPartName: '', // 缂栬緫鏃朵骇鍝佸悕绉�
editRouteName: '', // 缂栬緫鏃跺伐鑹鸿矾绾垮悕绉�
editStepName: '', // 缂栬緫鏃跺姞宸ュ伐搴忓悕绉�
- operation: ''
+ operation: '',
+ expandRowKeys: []// 榛樿灞曞紑
}
},
@@ -581,6 +655,12 @@
async routeDialogChange(val) {
const { data: res } = await RouteSelectStep({ partcode: this.dialogForm.partcode, routecode: val })
this.stepDialogArr = res
+
+ this.expandRowKeys = this.stepDialogArr.map(i => {
+ if (i.children.length > 0) {
+ return i.code
+ }
+ })
},
// 鏂板鎸夐挳
@@ -654,22 +734,22 @@
this.$refs.dialogForm.validate(valid => {
if (valid) {
const children = []
- this.stepDialogArr.forEach(i => {
- children.push({
- 'code': i.step_code,
- 'name': i.step_name,
- 'seq': i.step_seq,
- 'isbott': i.isbott,
- 'isend': i.isend,
- 'unprice': i.unprice
- })
- })
+ // this.stepDialogArr.forEach(i => {
+ // children.push({
+ // 'code': i.step_code,
+ // 'name': i.step_name,
+ // 'seq': i.step_seq,
+ // 'isbott': i.isbott,
+ // 'isend': i.isend,
+ // 'unprice': i.unprice
+ // })
+ // })
const data = [
{
'partcode': this.dialogForm.partcode,
'defaultroute_code': this.dialogForm.routecode,
- 'children': children
+ 'children': this.stepDialogArr
}
]
SaveBeatRate(data).then(res => {
@@ -684,7 +764,23 @@
}
})
},
-
+ // 璁惧鑺傛媿鍊兼敼鍙�
+ eqpValueChange(val, row) {
+ console.log(val, row)
+ if (parseFloat(row.cavity_qty) !== 0) {
+ row.stand_value = parseFloat((parseFloat(val) / parseFloat(row.cavity_qty)).toFixed(2))
+ } else {
+ row.stand_value = 0
+ }
+ },
+ // 鑵斿瀷鏁板�兼敼鍙�
+ cavityQtyChange(val, row) {
+ if (parseFloat(val) !== 0) {
+ row.stand_value = parseFloat((parseFloat(row.eqp_value) / parseFloat(val)).toFixed(2))
+ } else {
+ row.stand_value = 0
+ }
+ },
// 鑾峰彇椤甸潰楂樺害
getHeight() {
this.$nextTick(() => {
diff --git a/src/views/basicSettings/processList.vue b/src/views/basicSettings/processList.vue
index 1624cb1..1ae3d42 100644
--- a/src/views/basicSettings/processList.vue
+++ b/src/views/basicSettings/processList.vue
@@ -229,7 +229,7 @@
>
<el-divider content-position="left">鍩烘湰淇℃伅</el-divider>
- <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
<el-form-item label="宸ュ簭缂栫爜" prop="stepcode">
<el-input v-model="dialogForm.stepcode" :disabled="operation!=='add'" style="width: 200px" />
</el-form-item>
@@ -244,6 +244,7 @@
:popper-append-to-body="false"
@change="steptypecodeChange"
>
+
<el-option
v-for="item in steptypeArr"
:key="item.code"
@@ -253,9 +254,8 @@
</el-select>
</el-form-item>
- <el-form-item v-if="dialogForm.steptypecode==='Z'" label="鎵�灞炶溅闂�" required>
+ <el-form-item v-if="dialogForm.steptypecode==='Z'" label="鎵�灞炶溅闂�">
<el-select
-
v-model="dialogForm.Wkshop"
style="width:200px"
placeholder="璇烽�夋嫨"
@@ -269,6 +269,25 @@
:key="item.torg_code"
:label="item.torg_name"
:value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item v-if="dialogForm.steptypecode==='W'" label="寰�鏉ュ崟浣嶇被鍨�">
+ <el-select
+ v-model="dialogForm.CustomerType"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ multiple
+ collapse-tags
+ :popper-append-to-body="false"
+ @change="CustomerTypeChange"
+ >
+ <el-option
+ v-for="item in CustomerTypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
/>
</el-select>
</el-form-item>
@@ -410,7 +429,13 @@
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
import $ from 'jquery'
-import { CustomerPermissions, TorgWkshop, WkshopEqpPermissions } from '@/api/GeneralBasicData'
+import {
+ CustomerPermissions,
+ CustomerTypePermissions,
+ CustomerTypeSearchPermission,
+ TorgWkshop,
+ WkshopEqpPermissions
+} from '@/api/GeneralBasicData'
export default {
name: 'Zzjg',
@@ -427,8 +452,8 @@
stepname: '', //
enable: '', //
steptypecode: '', // 宸ュ簭绫诲瀷
- prop: 'stepcode', // 鎺掑簭瀛楁
- order: 'asc', // 鎺掑簭瀛楁
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
page: 1, // 绗嚑椤�
rows: 20 // 姣忛〉澶氬皯鏉�
},
@@ -443,12 +468,14 @@
{ code: 'N', name: '鍋滅敤' }
],
WkshopArr: [], // 杞﹂棿涓嬫媺鏁扮粍
+ CustomerTypeArr: [], // 寰�鏉ュ崟浣嶄笅鎷夋暟缁�
dialogVisible: false,
dialogForm: {
id: '',
stepcode: '', //
stepname: '', //
Wkshop: '', //
+ CustomerType: '', //
steptypecode: 'Z',
description: '', // 鎻忚堪
enable: 'Y'// 鐘舵��
@@ -486,6 +513,7 @@
created() {
this.getStepSearch()
this.getTorgWkshop()
+ this.getCustomerTypePermissions()
},
mounted() {
window.addEventListener('resize', this.getHeight)
@@ -503,6 +531,11 @@
const { data: res } = await TorgWkshop()
this.WkshopArr = res
},
+ // 寰�鏉ュ崟浣嶇被鍨�
+ async getCustomerTypePermissions() {
+ const { data: res } = await CustomerTypePermissions()
+ this.CustomerTypeArr = res
+ },
// 鏌ョ湅寰�鏉ヨ祫鏂�
async getCustomerPermissions() {
const { data: res } = await CustomerPermissions()
@@ -515,21 +548,39 @@
},
async steptypecodeChange(val) {
- if (val === 'W') { // 澶栧崗
- await this.getCustomerPermissions()
- } else { // 鑷埗
- this.dialogForm.Wkshop = []
- this.dialogTreeArr = []
- }
+ // if (val === 'W') { // 澶栧崗
+ // this.dialogForm.CustomerType = []
+ // // await this.getCustomerPermissions()
+ // } else { // 鑷埗
+ // this.dialogForm.Wkshop = []
+ // }
+ this.dialogForm.CustomerType = []
+ this.dialogForm.Wkshop = []
+ this.dialogTreeArr = []
},
// 杞﹂棿鍊兼敼鍙樻椂瑙﹀彂
async WkshopChange(val) {
if (val.length === 0) {
+ this.dialogTreeArr = []
return
}
-
const { data: res } = await WkshopEqpPermissions({ wkshopcode: val.join(',') })
+ this.dialogTreeArr = [
+ { code: '',
+ name: '鍏ㄩ儴',
+ children: res
+ }
+ ]
+ },
+
+ // 寰�鏉ュ崟浣嶇被鍨嬪�兼敼鍙樻椂
+ async CustomerTypeChange(val) {
+ if (val.length === 0) {
+ this.dialogTreeArr = []
+ return
+ }
+ const { data: res } = await CustomerTypeSearchPermission({ customertypecode: val.join(',') })
this.dialogTreeArr = [
{ code: '',
name: '鍏ㄩ儴',
@@ -585,14 +636,17 @@
})
await this.WkshopChange(this.dialogForm.Wkshop)
} else if (row.flwtype === 'W') {
- await this.steptypecodeChange(row.flwtype)
+ this.dialogForm.CustomerType = []
+ // await this.steptypecodeChange(row.flwtype)
res.filter(i => i.type === 'W' && i.flag === 'Y').forEach(i => {
+ this.dialogForm.CustomerType.push(i.code)
i.children.forEach(j => {
if (j.flag === 'Y') {
this.dialogTreeSelectedArr.push(j.code)
}
})
})
+ await this.CustomerTypeChange(this.dialogForm.CustomerType)
}
this.$nextTick(() => {
@@ -636,7 +690,7 @@
this.dialogForm.steptypecode = 'Z'
this.dialogTreeArr = []
this.dialogForm.Wkshop = []
-
+ this.dialogForm.CustomerType = []
this.dialogTreeSelectedArr = []
this.$refs.dialogForm.clearValidate()
},
--
Gitblit v1.9.3