Browse Source

2024-04-17

master
zelian_wu 2 years ago
parent
commit
0892b0d799
  1. 6
      src/api/code/codeDrawing.js
  2. 1
      src/api/code/codeItemDef.js
  3. 111
      src/views/modules/code/generation.vue
  4. 155
      src/views/modules/code/list.vue

6
src/api/code/codeDrawing.js

@ -0,0 +1,6 @@
import {createAPI} from "../../utils/httpRequest";
export const searchDrawingList = (data) => createAPI(`/code/drawing/list`,'post',data);
export const saveDrawing = (data) => createAPI(`/code/drawing/save`,'post',data);
export const removeDrawing = (data) => createAPI(`/code/drawing/remove`,'post',data);
export const editDrawing = (data) => createAPI(`/code/drawing/edit`,'post',data);

1
src/api/code/codeItemDef.js

@ -2,6 +2,7 @@ import {createAPI} from "../../utils/httpRequest";
export const searchCodeItemDefs = (data) => createAPI(`/code/item/list`, "post", data);
export const searchCodeItemDefsSeq = (data) => createAPI(`/code/item/seq/list`, "post", data);
export const searchCodeItemAllDefsSeq = (data) => createAPI(`/code/item/all/seq/list`, "post", data);
export const searchCodeSeqGenerate = (data) => createAPI(`/code/seq/generate/list`, "post", data);
export const saveCodeSeqGenerate = (data) => createAPI(`/code/seq/generate/save`, "post", data);

111
src/views/modules/code/generation.vue

@ -1,13 +1,118 @@
<script>
import {searchCodeItemAllDefsSeq, searchCodeItemDefs, searchCodeItemDefsSeq} from "../../../api/code/codeItemDef";
import {toJSON} from "lodash/seq";
export default {
name: "CodeGeneration"
name: "CodeGeneration",
data(){
return {
codeItemDefs: [],
searchModel:{
codeNo: "",
codeDesc: "",
remark: "",
},
codeItemTypes: [],
codeItemValues: [],
width: 700,
}
},
activated() {
this.searchCodeItemDefs();
},
methods:{
searchCodeItemDefs(){
let params = {
site:this.$store.state.user.site,
}
this.codeItemTypes = [];
this.codeItemValues = [];
searchCodeItemAllDefsSeq(params).then(({data})=>{
if (data && data.code === 0){
this.codeItemDefs = data.rows;
for (let i = 0; i < this.codeItemDefs.length; i++) {
let arr = this.codeItemDefs[i].itemType.split('或');
this.codeItemTypes[i] = arr[0]
this.codeItemValues[i] = undefined
}
}else {
this.$message.warning(data.msg);
}
}).catch((error) => {
this.$message.error(error);
});
},
changeCodeItemType(index){
this.$set(this.codeItemValues, index, undefined)
},
changeCodeItemValue(index,val){
if (val === true){
let codeItemDef = this.codeItemDefs[index]
if(index === 0 && codeItemDef.itemByCondition === 'Y'){
this.$refs[`codeItemValue${index}`][0].blur();
this.$message.warning("请先检查该元素的定义可选值设置中是否都已经维护了条件!")
return;
}
if (codeItemDef.itemByCondition === 'Y' && !this.codeItemValues[index-1]){
this.$refs[`codeItemValue${index}`][0].blur();
this.$message.warning('请先选择上一级编码');
return
}
}
},
getCodeNoBtn(){
//
for (let i = 0; i < this.codeItemValues.length; i++) {
if (!this.codeItemValues[i]){
this.$message.warning(`${this.codeItemDefs[i].itemDesc}不能为空`);
return
}
}
}
},
}
</script>
<template>
<div>
<h1>Generation</h1>
<div>
<el-form :model="searchModel" :inline="true" label-position="top">
<el-form-item label=" ">
<el-button type="primary" @click="getCodeNoBtn">获取编码</el-button>
<el-button type="primary">占有编码</el-button>
</el-form-item>
<el-form-item label="编码:">
<el-input readonly style="width: 200px" v-model="searchModel.codeNo"></el-input>
</el-form-item>
<el-form-item label="编码描述:">
<el-input readonly style="width: 200px" v-model="searchModel.codeDesc"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input readonly style="width: 200px" v-model="searchModel.remark"></el-input>
</el-form-item>
</el-form>
<!-- {{codeItemDefs}}-->
<div style="margin-top: 10px;border-top: 1px solid #ccc;padding-top: 10px;height: 400px;overflow-y: auto" :style="{width: `${width}px`}">
<el-form label-position="left" label-width="100px">
<el-form-item :label="`${item.itemDesc}:`" v-for="(item, index) in codeItemDefs" :key="index" style="margin-bottom: 10px">
<div v-if="item.itemType.includes('或')" style="width: 240px;display: inline-block">
<el-radio-group v-model="codeItemTypes[index]" @change="changeCodeItemType(index)">
<el-radio v-if="item.itemType.includes('选择')" label="选择">选择</el-radio>
<el-radio v-if="item.itemType.includes('手工')" label="手工">手工</el-radio>
<el-radio v-if="item.itemType.includes('流水号')" label="流水号">流水号</el-radio>
</el-radio-group>
</div>
<div style="display: inline-block;" :style="{width: `${item.itemType.includes('或')?(width-240-105):(width-100)}px`}">
<el-select :ref="`codeItemValue${index}`" v-if="codeItemTypes[index] === '选择'" @visible-change="(val)=>changeCodeItemValue(index,val)" style="width: 100%;" v-model="codeItemValues[index]">
<el-option :value="val.valueItemNo" :label="val.itemValue" v-for="(val , i) in item.itemValues" :key="i"></el-option>
</el-select>
<el-input v-if="codeItemTypes[index] === '手工'" placeholder="请输入" v-model="codeItemValues[index]"></el-input>
<el-input v-if="codeItemTypes[index] === '流水号'" disabled v-model="codeItemValues[index]"></el-input>
</div>
</el-form-item>
</el-form>
</div>
</div>
</template>
<style scoped>

155
src/views/modules/code/list.vue

@ -1,12 +1,161 @@
<script>
<script xmlns="http://www.w3.org/1999/html">
import {editDrawing, removeDrawing, searchDrawingList} from "../../../api/code/codeDrawing";
import dayjs from "dayjs";
export default {
name: "CodeList"
name: "CodeList",
data(){
return{
drawingList:[],
searchModel:{
site:this.$store.state.user.site,
drawingNo:undefined,
creator:undefined,
drawingDesc:undefined,
remark:undefined,
startDate:"",
endDate:"",
},
drawing:{
},
saveDialogVisible:false,
}
},
created() {
this.searchModel.startDate = dayjs().hour(0).minute(0).second(0).format("YYYY-MM-DD HH:mm:ss");
this.searchDrawingList();
},
methods:{
searchDrawingList(){
searchDrawingList(this.searchModel).then(({data})=>{
if (data && data.code === 0){
this.drawingList = data.rows;
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
})
},
handleDelete(row){
removeDrawing(row).then(({data})=>{
if (data && data.code === 0){
this.searchDrawingList();
this.$message.success(data.msg);
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
});
},
handleEdit(row){
this.drawing = {...row}
this.saveDialogVisible = true;
},
editDrawing(){
editDrawing(this.drawing).then(({data})=>{
if (data && data.code === 0){
this.searchDrawingList();
this.$message.success(data.msg);
this.saveDialogVisible = false;
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
});
}
}
}
</script>
<template>
<div>
<h1>Code List</h1>
<el-form :inline="true" label-position="top" :model="searchModel">
<el-form-item label="编码:">
<el-input v-model="searchModel.drawingNo" style="width: 200px"></el-input>
</el-form-item>
<el-form-item label="编码描述:">
<el-input v-model="searchModel.drawingDesc" style="width: 200px"></el-input>
</el-form-item>
<el-form-item label="备注:">
<el-input v-model="searchModel.remark" style="width: 200px"></el-input>
</el-form-item>
<br>
<el-form-item label="创建人:">
<el-input v-model="searchModel.creator" style="width: 150px"></el-input>
</el-form-item>
<el-form-item label="开始日期:">
<el-date-picker
value-format="yyyy-MM-dd HH:mm:ss"
v-model="searchModel.startDate"
style="width: 150px"
type="date"
placeholder="开始日期">
</el-date-picker>
</el-form-item>
<el-form-item label=" ">
->
</el-form-item>
<el-form-item label="结束日期:">
<el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="searchModel.endDate" style="width: 150px" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="searchDrawingList">搜索</el-button>
</el-form-item>
</el-form>
<el-table :data="drawingList" height="400px" border style="width: 100%">
<el-table-column prop="drawingNo" header-align="center" align="left" label="编码"></el-table-column>
<el-table-column prop="drawingDesc" header-align="center" align="left" label="编码描述"></el-table-column>
<el-table-column prop="creator" header-align="center" align="left" label="创建人"></el-table-column>
<el-table-column prop="createDate" header-align="center" align="left" label="创建时间"></el-table-column>
<el-table-column prop="remark" header-align="center" align="left" label="备注"></el-table-column>
<el-table-column header-align="center" align="center" label="操作">
<template slot-scope="{row}">
<el-button type="text" @click="handleEdit(row)">编辑</el-button>
<el-button type="text" @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog title="编辑编码" :visible.sync="saveDialogVisible">
<fieldset
style="height:80px;margin-top: 2px;border-color: rgb(255,255,255);">
<legend>更改前信息</legend>
<el-form :model="drawing" ref="drawingForm">
<el-form-item label="编码:">
<el-input readonly v-model="drawing.drawingNo" style="width: 200px"></el-input>
</el-form-item>
<el-form-item label="编码描述:">
<el-input readonly v-model="drawing.drawingDesc" style="width: 200px"></el-input>
</el-form-item>
<el-form-item label="备注:">
<el-input readonly v-model="drawing.drawingNo" style="width: 200px"></el-input>
</el-form-item>
</el-form>
</fieldset>
<fieldset
style="height:80px;margin-top: 2px;border-color: rgb(255,255,255);">
<legend>更改后信息</legend>
<el-form :model="drawing" ref="drawingForm">
<el-form-item label="编码:">
<el-input v-model="drawing.drawingNoNew" style="width: 200px"></el-input>
</el-form-item>
<el-form-item label="编码描述:">
<el-input readonly v-model="drawing.drawingDesc" style="width: 200px"></el-input>
</el-form-item>
<el-form-item label="备注:">
<el-input readonly v-model="drawing.drawingNo" style="width: 200px"></el-input>
</el-form-item>
</el-form>
</fieldset>
<el-footer style="height:30px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="editDrawing">保存</el-button>
<el-button type="primary" @click="saveDialogVisible = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>

Loading…
Cancel
Save