11 changed files with 1094 additions and 11 deletions
-
9src/api/code/codeItemDef.js
-
9src/api/code/codeItemValue.js
-
15src/views/modules/code/generation.vue
-
858src/views/modules/code/item.vue
-
15src/views/modules/code/list.vue
-
13src/views/modules/code/setting.vue
-
39src/views/modules/proofing/requestForProofing.vue
-
51src/views/modules/quotation/requestForQuote.vue
-
36src/views/modules/quotation/sellForQuotation/quoteDetail.vue
-
19src/views/modules/test/file/testFile.vue
-
39src/views/modules/test/requestForTest.vue
@ -0,0 +1,9 @@ |
|||||
|
import {createAPI} from "../../utils/httpRequest"; |
||||
|
|
||||
|
export const searchCodeItemDefs = (data) => createAPI(`/code/item/list`, "post", data); |
||||
|
|
||||
|
export const saveBatchCodeItemDef = (data) => createAPI(`/code/item/save/batch`, "post", data); |
||||
|
|
||||
|
export const removeBatchCodeItemDef = (data) => createAPI(`/code/item/remove/batch`, "post", data); |
||||
|
|
||||
|
export const editBatchCodeItemDef = (data) => createAPI(`/code/item/edit/batch`, "post", data); |
||||
@ -0,0 +1,9 @@ |
|||||
|
import {createAPI} from "../../utils/httpRequest"; |
||||
|
|
||||
|
export const searchCodeItemValueList = (data) => createAPI(`/code/value/list`,'post',data) |
||||
|
export const saveCodeItemValue = (data) => createAPI(`/code/value/save`,'post',data) |
||||
|
export const saveCodeItemValueBatch = (data) => createAPI(`/code/value/save/batch`,'post',data) |
||||
|
export const removeCodeItemValue = (data) => createAPI(`/code/value/remove`,'post',data) |
||||
|
export const removeCodeItemValueBatch = (data) => createAPI(`/code/value/remove/batch`,'post',data) |
||||
|
export const updateCodeItemValue = (data) => createAPI(`/code/value/edit`,'post',data) |
||||
|
export const updateCodeItemValueBatch = (data) => createAPI(`/code/value/edit/batch`,'post',data) |
||||
@ -0,0 +1,15 @@ |
|||||
|
<script> |
||||
|
export default { |
||||
|
name: "CodeGeneration" |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<template> |
||||
|
<div> |
||||
|
<h1>Generation</h1> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,858 @@ |
|||||
|
<script> |
||||
|
import { |
||||
|
searchCodeItemDefs, |
||||
|
removeBatchCodeItemDef, |
||||
|
saveBatchCodeItemDef, |
||||
|
editBatchCodeItemDef |
||||
|
} from "../../../api/code/codeItemDef" |
||||
|
|
||||
|
const columnList = [ |
||||
|
{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ItemNo', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'itemNo', |
||||
|
headerAlign: 'center', |
||||
|
align: 'right', |
||||
|
columnLabel: '序号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 60 |
||||
|
}, |
||||
|
{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ItemDesc', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'itemDesc', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '描述', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1SeqNo', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'seqNo', |
||||
|
headerAlign: 'center', |
||||
|
align: 'right', |
||||
|
columnLabel: '排列次序号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1Postfix', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'postfix', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '前面是否增加分割号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1Bits', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'bits', |
||||
|
headerAlign: 'center', |
||||
|
align: 'right', |
||||
|
columnLabel: '编码位数', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ItemByCondition', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'itemByCondition', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '可选值随元素变化而变化', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 180 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ItemType', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'itemType', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '元素输入类型', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1SeqNoBits', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'seqNoBits', |
||||
|
headerAlign: 'center', |
||||
|
align: 'right', |
||||
|
columnLabel: '流水号位数', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1SeqNoType', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'seqNoType', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '流水号产生规则', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1VirtualItem', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'virtualItem', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '不参与编码', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ValueSeqNo', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'valueSeqNo', |
||||
|
headerAlign: 'center', |
||||
|
align: 'right', |
||||
|
columnLabel: '值顺序号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1FixedValueFlag', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'fixedValueFlag', |
||||
|
headerAlign: 'center', |
||||
|
align: 'right', |
||||
|
columnLabel: '固定值', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
}, |
||||
|
]; |
||||
|
const descColumnList = [ |
||||
|
{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ItemNo', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'itemNo', |
||||
|
headerAlign: 'center', |
||||
|
align: 'right', |
||||
|
columnLabel: '序号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 60 |
||||
|
}, |
||||
|
{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ItemDesc', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'itemDesc', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '描述', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1SeqNo', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'seqNo', |
||||
|
headerAlign: 'center', |
||||
|
align: 'right', |
||||
|
columnLabel: '排列次序号', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 80 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ShowInDesc', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'showInDesc', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '在描述中显示', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 120 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ShowItemDescInDesc', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'showItemDescInDesc', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '在描述显示元素名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ShowInRemark', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'showInRemark', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '在备注中显示', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 100 |
||||
|
},{ |
||||
|
functionId: 9009004, |
||||
|
serialNumber: '9009004Table1ShowItemDescInRemark', |
||||
|
tableId: '9009004Table1', |
||||
|
tableName: '编码组成元素', |
||||
|
columnProp: 'showItemDescInRemark', |
||||
|
headerAlign: 'center', |
||||
|
align: 'left', |
||||
|
columnLabel: '在备注中显示元素名称', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: '', |
||||
|
columnWidth: 140 |
||||
|
} |
||||
|
]; |
||||
|
const dataList = { |
||||
|
itemNo:undefined, |
||||
|
itemDesc:undefined, |
||||
|
seqNo:undefined, |
||||
|
postfix:undefined, |
||||
|
bits:undefined, |
||||
|
itemByCondition:undefined, |
||||
|
seqFlag:undefined, |
||||
|
itemType:undefined, |
||||
|
seqNoBits:undefined, |
||||
|
seqNoType:undefined, |
||||
|
virtualItem:undefined, |
||||
|
valueSeqNo:undefined, |
||||
|
fixedValueFlag:undefined, |
||||
|
showInDesc:undefined, |
||||
|
showItemDescInDesc:undefined, |
||||
|
showInRemark:undefined, |
||||
|
showItemDescInRemark:undefined, |
||||
|
}; |
||||
|
|
||||
|
const dataLabels = { |
||||
|
itemNo:"元素序号", |
||||
|
itemDesc:"元素描述", |
||||
|
seqNo:"排列次序号", |
||||
|
postfix:"前面是否增加分割号", |
||||
|
bits:"编码位数", |
||||
|
itemByCondition:"可选值随元素变化而变化", |
||||
|
seqFlag:"流水号标识", |
||||
|
itemType:"元素输入类型", |
||||
|
seqNoBits:"流水号位数", |
||||
|
seqNoType:"流水号产生规则", |
||||
|
virtualItem:"不参与编码", |
||||
|
valueSeqNo:"值顺序号", |
||||
|
fixedValueFlag:"固定值", |
||||
|
showInDesc:"在描述中显示", |
||||
|
showItemDescInDesc:"在描述显示元素名称", |
||||
|
showInRemark:"在备注中显示", |
||||
|
showItemDescInRemark:"在备注中显示元素名称", |
||||
|
}; |
||||
|
const dataRules = {}; |
||||
|
Object.keys(dataList).forEach(key => { |
||||
|
dataRules[key] = [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: `${dataLabels[key]}不能为空`, |
||||
|
trigger: ['blur','input','change'] |
||||
|
} |
||||
|
]; |
||||
|
}); |
||||
|
export default { |
||||
|
name: "CodeItem", |
||||
|
data(){ |
||||
|
return{ |
||||
|
currentRow:{}, |
||||
|
saveOrEditIndex:undefined, |
||||
|
loading:false, |
||||
|
defineOptionalValueFlag:false, |
||||
|
visible: false, |
||||
|
codeItemDefs: [], |
||||
|
copyCodeItemDefs:[], |
||||
|
columnList: columnList.map(item => {return {...item,userId:this.$store.state.user.id}}), |
||||
|
descColumnList: descColumnList.map(item => {return {...item,userId:this.$store.state.user.id}}), |
||||
|
searchCodeItemDef: {...dataList}, |
||||
|
selectionAllList: [], |
||||
|
saveCodeItemDef:{...dataList}, |
||||
|
rules: dataRules, |
||||
|
descOrRemarkDialog:false, |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
itemType(){ |
||||
|
return this.saveCodeItemDef.itemType; |
||||
|
}, |
||||
|
sortCodeItemDefs(){ |
||||
|
let arr = JSON.parse(JSON.stringify(this.copyCodeItemDefs)); |
||||
|
return arr.sort((a,b) => a.seqNo - b.seqNo); |
||||
|
}, |
||||
|
descDialog:{ |
||||
|
get(){ |
||||
|
return this.descOrRemarkDialog |
||||
|
}, |
||||
|
set(val){ |
||||
|
if (this.saveOrEditIndex !== undefined){ |
||||
|
this.$confirm('存在信息正在编辑, 是否继续?', '提示', { |
||||
|
confirmButtonText: '确定', |
||||
|
cancelButtonText: '取消', |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.descOrRemarkDialog = val |
||||
|
this.saveOrEditIndex = undefined |
||||
|
}).catch(() => { |
||||
|
|
||||
|
}); |
||||
|
}else { |
||||
|
this.descOrRemarkDialog = val |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
watch:{ |
||||
|
itemType(val,oldVal){ |
||||
|
if (val && !val.includes('流水号')){ |
||||
|
this.saveCodeItemDef.seqNoType = '*'; |
||||
|
this.saveCodeItemDef.seqNoBits = 0; |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
methods: { |
||||
|
searchCodeItemDefs(){ |
||||
|
let params = { |
||||
|
...this.searchCodeItemDef, |
||||
|
site: this.$store.state.user.site, |
||||
|
} |
||||
|
this.loading = true; |
||||
|
searchCodeItemDefs(params).then(({data}) => { |
||||
|
if (data && data.code === 0){ |
||||
|
this.codeItemDefs = data.rows; |
||||
|
if (!this.currentRow.itemNo && this.codeItemDefs.length > 0){ |
||||
|
this.currentRow = {...this.codeItemDefs[0]}; |
||||
|
} |
||||
|
}else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
this.loading = false |
||||
|
}).catch(err => { |
||||
|
console.log(err) |
||||
|
this.loading = false |
||||
|
}) |
||||
|
}, |
||||
|
removeBatchCodeItemDef(){ |
||||
|
if (this.selectionAllList.length === 0){ |
||||
|
this.$message.warning("请选择要删除的项") |
||||
|
return |
||||
|
} |
||||
|
removeBatchCodeItemDef(this.selectionAllList).then(({data}) => { |
||||
|
if (data && data.code === 0){ |
||||
|
this.$message.success(data.msg); |
||||
|
this.currentRow = {}; |
||||
|
this.searchCodeItemDefs() |
||||
|
}else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}).catch(err => { |
||||
|
console.log(err) |
||||
|
}) |
||||
|
}, |
||||
|
saveBatchCodeItemDef(params){ |
||||
|
saveBatchCodeItemDef(params).then(({data}) => { |
||||
|
if (data && data.code === 0){ |
||||
|
this.$message.success(data.msg) |
||||
|
this.visible = false; |
||||
|
this.searchCodeItemDefs(); |
||||
|
}else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}).catch(err => { |
||||
|
console.log(err) |
||||
|
}) |
||||
|
}, |
||||
|
editBatchCodeItemDef(params){ |
||||
|
editBatchCodeItemDef(params).then(({data}) => { |
||||
|
if (data && data.code === 0){ |
||||
|
this.$message.success(data.msg) |
||||
|
this.visible = false; |
||||
|
this.currentRow = {}; |
||||
|
this.saveOrEditIndex = undefined |
||||
|
this.searchCodeItemDefs() |
||||
|
}else { |
||||
|
this.$message.error(data.msg) |
||||
|
} |
||||
|
}).catch(err => { |
||||
|
console.log(err) |
||||
|
}) |
||||
|
}, |
||||
|
handleSelectionChange(selection){ |
||||
|
this.selectionAllList = selection; |
||||
|
}, |
||||
|
closeDialog(){ |
||||
|
this.resetData(this.saveCodeItemDef); |
||||
|
this.$refs.saveCodeItemDefForm.resetFields(); |
||||
|
}, |
||||
|
resetData(data){ |
||||
|
Object.keys(data).forEach(key => {data[key] = undefined;}); |
||||
|
}, |
||||
|
clickEdit(row) { |
||||
|
this.saveCodeItemDef = {...row}; |
||||
|
this.visible = true; |
||||
|
}, |
||||
|
clickSave(){ |
||||
|
this.resetData(this.saveCodeItemDef); |
||||
|
this.$nextTick(()=>{ |
||||
|
this.saveCodeItemDef.postfix = 'N'; |
||||
|
this.saveCodeItemDef.bits = 1; |
||||
|
this.saveCodeItemDef.itemByCondition = 'N'; |
||||
|
this.saveCodeItemDef.seqNoBits = 0; |
||||
|
this.saveCodeItemDef.virtualItem = 'N'; |
||||
|
this.saveCodeItemDef.seqNoType = '*'; |
||||
|
this.saveCodeItemDef.showInDesc = 'Y'; |
||||
|
this.saveCodeItemDef.showItemDescInDesc = 'Y'; |
||||
|
this.saveCodeItemDef.showInRemark = 'Y'; |
||||
|
this.saveCodeItemDef.showItemDescInRemark = 'Y'; |
||||
|
if (this.codeItemDefs.length === 0){ |
||||
|
this.saveCodeItemDef.seqNo = 1; |
||||
|
this.saveCodeItemDef.valueSeqNo = 1; |
||||
|
}else { |
||||
|
this.saveCodeItemDef.seqNo = this.sortCodeItemDefs[this.codeItemDefs.length-1].seqNo + 1; |
||||
|
let arr = this.sortCodeItemDefs.map(item=>item.valueSeqNo) |
||||
|
this.saveCodeItemDef.valueSeqNo = Math.max(...arr) + 1; |
||||
|
} |
||||
|
}) |
||||
|
this.visible = true; |
||||
|
}, |
||||
|
clickSaveCodeItemDef(){ |
||||
|
this.$refs.saveCodeItemDefForm.validate((valid,obj) => { |
||||
|
if (valid) { |
||||
|
if (this.saveCodeItemDef.itemType.includes('流水号') && this.saveCodeItemDef.seqNoBits <= 0){ |
||||
|
this.$message.warning("流水号位数不能小于等于0"); |
||||
|
return |
||||
|
} |
||||
|
if (this.saveCodeItemDef.itemType.includes('流水号') && this.saveCodeItemDef.seqNoType === '*'){ |
||||
|
this.$message.warning("流水号产生规则不能为*"); |
||||
|
return |
||||
|
} |
||||
|
let arr = []; |
||||
|
arr.push(this.saveCodeItemDef) |
||||
|
if (this.saveCodeItemDef.itemNo){ |
||||
|
this.editBatchCodeItemDef(arr) |
||||
|
}else { |
||||
|
this.saveCodeItemDef.site = this.$store.state.user.site; |
||||
|
this.saveBatchCodeItemDef(arr) |
||||
|
} |
||||
|
}else { |
||||
|
Object.keys(obj).forEach(key => { |
||||
|
this.$message.error(obj[key][0].message); |
||||
|
return |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
clickCopy(row){ |
||||
|
this.saveCodeItemDef = {...row}; |
||||
|
this.visible = true; |
||||
|
this.saveCodeItemDef.itemNo = undefined; |
||||
|
}, |
||||
|
saveDesc(row){ |
||||
|
let arr = []; |
||||
|
arr.push(row) |
||||
|
this.editBatchCodeItemDef(arr) |
||||
|
}, |
||||
|
clickEditDesc(index){ |
||||
|
if (this.saveOrEditIndex !== undefined){ |
||||
|
this.$confirm('存在信息正在编辑, 是否继续?', '提示', { |
||||
|
confirmButtonText: '确定', |
||||
|
cancelButtonText: '取消', |
||||
|
type: 'warning' |
||||
|
}).then(() => { |
||||
|
this.clickSettingDesc(); |
||||
|
this.saveOrEditIndex = index; |
||||
|
}).catch(() => { |
||||
|
|
||||
|
}); |
||||
|
}else { |
||||
|
this.saveOrEditIndex = index; |
||||
|
} |
||||
|
}, |
||||
|
clickSettingDesc(){ |
||||
|
this.copyCodeItemDefs = JSON.parse(JSON.stringify(this.codeItemDefs)); |
||||
|
this.descOrRemarkDialog = true; |
||||
|
}, |
||||
|
clickRest(){ |
||||
|
this.clickSettingDesc(); |
||||
|
this.saveOrEditIndex = undefined; |
||||
|
}, |
||||
|
rowStyle({row}){ |
||||
|
if (row){ |
||||
|
if (row.itemNo === this.currentRow.itemNo){ |
||||
|
return {'background-color': '#E8F7F6', cursor: 'pointer'}; |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
quotationClickRow(row, column, event){ |
||||
|
this.currentRow = {...row}; |
||||
|
}, |
||||
|
defineOptionalValues(){ |
||||
|
if (!this.currentRow.itemNo){ |
||||
|
this.$message.warning("请先选择要定义可选值的元素"); |
||||
|
return |
||||
|
} |
||||
|
this.defineOptionalValueFlag = true; |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
this.searchCodeItemDefs() |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<template> |
||||
|
<div> |
||||
|
<!-- 搜索条件 --> |
||||
|
<el-form :model="searchCodeItemDef" :inline="true" label-position="top"> |
||||
|
<el-form-item label="描述"> |
||||
|
<el-input v-model="searchCodeItemDef.itemDesc"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" icon="el-icon-search" @click="searchCodeItemDefs">搜索</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<!-- 操作按钮 --> |
||||
|
<el-form :inline="true" label-position="top"> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" icon="el-icon-plus" @click="clickSave">新增</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" icon="el-icon-delete" @click="removeBatchCodeItemDef">删除</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button :type="`${currentRow.itemType.includes('选择')?'primary':'info'}`" :disabled="currentRow.itemType && !currentRow.itemType.includes('选择')" @click="defineOptionalValues" plain>定义可选值</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" :type="`${currentRow.itemType.includes('流水号')?'primary':'info'}`" :disabled="currentRow.itemType && !currentRow.itemType.includes('流水号')" plain>流水号产生规则</el-button> |
||||
|
</el-form-item> |
||||
|
<el-form-item label=" "> |
||||
|
<el-button type="primary" @click="clickSettingDesc" plain>设置描述/备注产生规则</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<!-- 表格 --> |
||||
|
<el-table :data="codeItemDefs" |
||||
|
v-loading="loading" |
||||
|
element-loading-text="拼命加载中" |
||||
|
height="80vh" |
||||
|
border |
||||
|
@row-click="quotationClickRow" |
||||
|
:row-style="rowStyle" |
||||
|
@selection-change="handleSelectionChange" |
||||
|
style="width: 100%;margin-top: 5px;min-height: 200px"> |
||||
|
<el-table-column |
||||
|
type="selection" |
||||
|
align="center" |
||||
|
width="55"> |
||||
|
</el-table-column> |
||||
|
<el-table-column |
||||
|
v-for="(item,index) in columnList" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed === ''?false:item.fixed" |
||||
|
:min-width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="操作" align="left" header-align="center" width="150"> |
||||
|
<template slot-scope="{row,$index}"> |
||||
|
<el-button type="text" style="cursor:pointer;" @click="clickEdit(row)" icon="el-icon-edit-outline">编辑</el-button> |
||||
|
<el-button type="text" style="cursor:pointer;" @click="clickCopy(row)" icon="el-icon-edit-outline">复制</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
<!--可选值--> |
||||
|
<el-dialog :visible.sync="defineOptionalValueFlag" v-drag title="定义可选值"> |
||||
|
|
||||
|
</el-dialog> |
||||
|
|
||||
|
<!--新增/修改弹框--> |
||||
|
<el-dialog :visible.sync="visible" @close="closeDialog" width="500px" v-drag title="新增编码组成元素"> |
||||
|
<el-form :model="saveCodeItemDef" :rules="rules" ref="saveCodeItemDefForm" label-position="top"> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="16"> |
||||
|
<el-form-item label="描述" prop="itemDesc" :show-message="false"> |
||||
|
<el-input v-model="saveCodeItemDef.itemDesc"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="排列次序号" prop="seqNo" :show-message="false"> |
||||
|
<el-input-number v-model="saveCodeItemDef.seqNo" :min="0" style="line-height: 1.5;width: 100%;" :controls="false"></el-input-number> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="前面是否增加分割号" prop="postfix" :show-message="false"> |
||||
|
<el-select v-model="saveCodeItemDef.postfix" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="Y" value="Y"></el-option> |
||||
|
<el-option label="N" value="N"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="编码位数" prop="bits" :show-message="false"> |
||||
|
<el-input-number v-model="saveCodeItemDef.bits" :min="0" style="line-height: 1.5;width: 100%;" :controls="false"></el-input-number> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="可选值随元素变化而变化" prop="itemByCondition" :show-message="false"> |
||||
|
<el-select v-model="saveCodeItemDef.itemByCondition" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="Y" value="Y"></el-option> |
||||
|
<el-option label="N" value="N"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="元素输入类型" prop="itemType" :show-message="false"> |
||||
|
<el-select v-model="saveCodeItemDef.itemType" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="选择" value="选择"></el-option> |
||||
|
<el-option label="手工" value="手工"></el-option> |
||||
|
<el-option label="流水号" value="流水号"></el-option> |
||||
|
<el-option label="选择或手工" value="选择或手工"></el-option> |
||||
|
<el-option label="选择或流水号" value="选择或流水号"></el-option> |
||||
|
<el-option label="手工或流水号" value="手工或流水号"></el-option> |
||||
|
<el-option label="选择或手工或流水号" value="选择或手工或流水号"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="流水号参数规则" prop="seqNoType" :show-message="false"> |
||||
|
<el-select v-model="saveCodeItemDef.seqNoType" :disabled="!saveCodeItemDef.itemType || !saveCodeItemDef.itemType.includes('流水号')" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="*" value="*"></el-option> |
||||
|
<el-option label="指定元素" value="指定元素"></el-option> |
||||
|
<el-option label="所有元素" value="所有元素"></el-option> |
||||
|
<el-option label="全部元素" value="全部元素"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="流水号位数" prop="seqNoBits" :show-message="false"> |
||||
|
<el-input-number v-model="saveCodeItemDef.seqNoBits" :disabled="!saveCodeItemDef.itemType || !saveCodeItemDef.itemType.includes('流水号')" :min="0" style="line-height: 1.5;width: 100%;" :controls="false"></el-input-number> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="不参与编码" prop="virtualItem" :show-message="false"> |
||||
|
<el-select v-model="saveCodeItemDef.virtualItem" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="Y" value="Y"></el-option> |
||||
|
<el-option label="N" value="N"></el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="值顺序号" prop="valueSeqNo" :show-message="false"> |
||||
|
<el-input-number v-model="saveCodeItemDef.valueSeqNo" :min="0" style="line-height: 1.5;width: 100%;" :controls="false"></el-input-number> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
<el-col :span="8"> |
||||
|
<el-form-item label="固定值" :show-message="false"> |
||||
|
<el-input v-model="saveCodeItemDef.fixedValueFlag"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</el-form> |
||||
|
<el-footer style="height:30px;text-align:center;margin-top: 8px"> |
||||
|
<el-button type="primary" @click="clickSaveCodeItemDef">保存</el-button> |
||||
|
<el-button type="primary" @click="visible = false">关闭</el-button> |
||||
|
</el-footer> |
||||
|
</el-dialog> |
||||
|
|
||||
|
<!--设置描述/备注产生规则--> |
||||
|
<el-dialog ref="dialog" :visible.sync="descDialog" width="60%" v-drag title="设置描述/备注产生规则"> |
||||
|
<div> |
||||
|
<el-button type="primary" :disabled="saveOrEditIndex >= 0" icon="el-icon-refresh" @click="()=>{ |
||||
|
this.searchCodeItemDef.itemDesc = undefined; |
||||
|
this.searchCodeItemDefs(); |
||||
|
}">刷新</el-button> |
||||
|
<el-button type="primary" @click="descDialog = false">关闭</el-button> |
||||
|
</div> |
||||
|
<el-table :data="sortCodeItemDefs" |
||||
|
height="400px" |
||||
|
border stripe |
||||
|
style="width: 100%;margin-top: 5px;min-height: 200px"> |
||||
|
<el-table-column |
||||
|
v-for="(item,index) in descColumnList" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed === ''?false:item.fixed" |
||||
|
:min-width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
<template slot-scope="{row,$index}"> |
||||
|
<div v-if="saveOrEditIndex === $index && ['showInDesc','showItemDescInDesc','showInRemark','showItemDescInRemark'].includes(item.columnProp)"> |
||||
|
<el-select v-if="item.columnProp === 'showInDesc'" v-model="row.showInDesc" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="Y" value="Y"></el-option> |
||||
|
<el-option label="N" value="N" :disabled="row.showItemDescInDesc === 'Y'"></el-option> |
||||
|
</el-select> |
||||
|
<el-select v-if="item.columnProp === 'showItemDescInDesc'" @change="()=>{ |
||||
|
if (row.showItemDescInDesc === 'Y'){ |
||||
|
row.showInDesc = 'Y'; |
||||
|
} |
||||
|
}" v-model="row.showItemDescInDesc" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="Y" value="Y"></el-option> |
||||
|
<el-option label="N" value="N"></el-option> |
||||
|
</el-select> |
||||
|
<el-select v-if="item.columnProp === 'showInRemark'" v-model="row.showInRemark" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="Y" value="Y"></el-option> |
||||
|
<el-option label="N" value="N" :disabled="row.showItemDescInRemark === 'Y'"></el-option> |
||||
|
</el-select> |
||||
|
<el-select v-if="item.columnProp === 'showItemDescInRemark'" @change="()=>{ |
||||
|
if (row.showItemDescInRemark === 'Y'){ |
||||
|
row.showInRemark = 'Y'; |
||||
|
} |
||||
|
}" v-model="row.showItemDescInRemark" style="width: 100%;" placeholder="请选择"> |
||||
|
<el-option label="Y" value="Y"></el-option> |
||||
|
<el-option label="N" value="N"></el-option> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
<div v-else> |
||||
|
{{row[item.columnProp]}} |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column label="操作" align="center" header-align="center" width="150"> |
||||
|
<template slot-scope="{row,$index}"> |
||||
|
<el-button v-if="saveOrEditIndex !== $index" @click="clickEditDesc($index)" type="text" style="cursor:pointer;" icon="el-icon-edit-outline">编辑</el-button> |
||||
|
<div v-else> |
||||
|
<el-button @click="saveDesc(row)" type="text" style="cursor:pointer;" icon="el-icon-edit-outline">保存</el-button> |
||||
|
<el-button @click="clickRest" type="text" style="cursor:pointer;" icon="el-icon-circle-close">取消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped> |
||||
|
.el-table /deep/ .cell{ |
||||
|
height: auto; |
||||
|
line-height: 1.5; |
||||
|
} |
||||
|
.el-input-number /deep/ .el-input__inner{ |
||||
|
text-align: right; |
||||
|
padding-right: 15px !important; |
||||
|
padding-left: 0px !important; |
||||
|
} |
||||
|
/deep/ .el-button{ |
||||
|
line-height: 13px; |
||||
|
height: 21px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,15 @@ |
|||||
|
<script> |
||||
|
export default { |
||||
|
name: "CodeList" |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<template> |
||||
|
<div> |
||||
|
<h1>Code List</h1> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,13 @@ |
|||||
|
<script> |
||||
|
export default { |
||||
|
name: "CodeSetting" |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<template> |
||||
|
<h2>setting</h2> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped> |
||||
|
|
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue