Browse Source

2024-04-17

master
zelian_wu 2 years ago
parent
commit
7ef4a6a4bb
  1. 6
      src/api/code/codeConditionDetail.js
  2. 6
      src/api/code/codeConditionHeader.js
  3. 3
      src/api/code/codeItemDef.js
  4. 1
      src/api/code/codeItemValue.js
  5. 4
      src/api/code/codeParameterDef.js
  6. 2
      src/views/main-content.vue
  7. 153
      src/views/modules/code/item.vue
  8. 703
      src/views/modules/code/item/itemValue.vue
  9. 86
      src/views/modules/code/setting.vue
  10. 4
      src/views/modules/test/requestForTest.vue

6
src/api/code/codeConditionDetail.js

@ -0,0 +1,6 @@
import {createAPI} from "../../utils/httpRequest";
export const codeConditionDetailList = (data) => createAPI(`/code/condition/detail/list`,'post',data)
export const saveConditionDetailList = (data) => createAPI(`/code/condition/detail/save`,'post',data)
export const removeConditionDetailList = (data) => createAPI(`/code/condition/detail/remove`,'post',data)
export const editConditionDetailList = (data) => createAPI(`/code/condition/detail/edit`,'post',data)

6
src/api/code/codeConditionHeader.js

@ -0,0 +1,6 @@
import {createAPI} from "../../utils/httpRequest";
export const searchCodeConditionHeaderList = (data) => createAPI(`/code/condition/header/list`,'post',data)
export const saveCodeConditionHeader = (data) => createAPI(`/code/condition/header/save`,'post',data)
export const removeCodeConditionHeader = (data) => createAPI(`/code/condition/header/remove`,'post',data)
export const editCodeConditionHeader = (data) => createAPI(`/code/condition/header/edit`,'post',data)

3
src/api/code/codeItemDef.js

@ -1,6 +1,9 @@
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 searchCodeSeqGenerate = (data) => createAPI(`/code/seq/generate/list`, "post", data);
export const saveCodeSeqGenerate = (data) => createAPI(`/code/seq/generate/save`, "post", data);
export const saveBatchCodeItemDef = (data) => createAPI(`/code/item/save/batch`, "post", data);

1
src/api/code/codeItemValue.js

@ -1,6 +1,7 @@
import {createAPI} from "../../utils/httpRequest";
export const searchCodeItemValueList = (data) => createAPI(`/code/value/list`,'post',data)
export const searchCodeItemValueListItem = (data) => createAPI(`/code/value/list/item`,'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)

4
src/api/code/codeParameterDef.js

@ -0,0 +1,4 @@
import {createAPI} from "../../utils/httpRequest";
export const searchCodeParameter = (data) => createAPI("/code/parameter/list", "post", data);
export const saveCodeParameter = (data) => createAPI("/code/parameter/edit", "post", data);

2
src/views/main-content.vue

@ -114,7 +114,7 @@
<button @click="settingFlag = false">取消</button>
</div>
<div class="box-div" v-if="!settingFlag">
<el-checkbox v-model="querySavedVo.caseSensitiveFlag" true-label="Y" false-label="N">区分大小写</el-checkbox>
<el-checkbox v-model="querySavedVo.caseSensitiveFlag" true-label="Y" false-label="N">区分大小写</el-checkbox>
</div>
</div>
</el-card>

153
src/views/modules/code/item.vue

@ -3,8 +3,9 @@ import {
searchCodeItemDefs,
removeBatchCodeItemDef,
saveBatchCodeItemDef,
editBatchCodeItemDef
editBatchCodeItemDef, searchCodeItemDefsSeq, searchCodeSeqGenerate, saveCodeSeqGenerate
} from "../../../api/code/codeItemDef"
import ItemValue from "./item/itemValue.vue";
const columnList = [
{
@ -369,6 +370,7 @@ Object.keys(dataList).forEach(key => {
});
export default {
name: "CodeItem",
components: {ItemValue},
data(){
return{
currentRow:{},
@ -385,6 +387,9 @@ export default {
saveCodeItemDef:{...dataList},
rules: dataRules,
descOrRemarkDialog:false,
codeItemSeqList:[],
seqNoGenerateDialog:false,
seqNoGenerateList:[],
}
},
computed: {
@ -452,6 +457,11 @@ export default {
this.$message.warning("请选择要删除的项")
return
}
this.$confirm(`确定要删除组成元素${this.selectionAllList[0].itemDesc}以及所有该元素的有关信息吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
removeBatchCodeItemDef(this.selectionAllList).then(({data}) => {
if (data && data.code === 0){
this.$message.success(data.msg);
@ -463,6 +473,9 @@ export default {
}).catch(err => {
console.log(err)
})
}).catch(() => {
});
},
saveBatchCodeItemDef(params){
saveBatchCodeItemDef(params).then(({data}) => {
@ -482,7 +495,7 @@ export default {
if (data && data.code === 0){
this.$message.success(data.msg)
this.visible = false;
this.currentRow = {};
// this.currentRow = {};
this.saveOrEditIndex = undefined
this.searchCodeItemDefs()
}else {
@ -492,9 +505,6 @@ export default {
console.log(err)
})
},
handleSelectionChange(selection){
this.selectionAllList = selection;
},
closeDialog(){
this.resetData(this.saveCodeItemDef);
this.$refs.saveCodeItemDefForm.resetFields();
@ -533,11 +543,11 @@ export default {
clickSaveCodeItemDef(){
this.$refs.saveCodeItemDefForm.validate((valid,obj) => {
if (valid) {
if (this.saveCodeItemDef.itemType.includes('流水号') && this.saveCodeItemDef.seqNoBits <= 0){
if (this.saveCodeItemDef.itemType && this.saveCodeItemDef.itemType.includes('流水号') && this.saveCodeItemDef.seqNoBits <= 0){
this.$message.warning("流水号位数不能小于等于0");
return
}
if (this.saveCodeItemDef.itemType.includes('流水号') && this.saveCodeItemDef.seqNoType === '*'){
if (this.saveCodeItemDef.itemType &&this.saveCodeItemDef.itemType.includes('流水号') && this.saveCodeItemDef.seqNoType === '*'){
this.$message.warning("流水号产生规则不能为*");
return
}
@ -607,6 +617,62 @@ export default {
return
}
this.defineOptionalValueFlag = true;
},
removeCodeItemDef(row){
this.selectionAllList = [row];
this.removeBatchCodeItemDef();
},
searchCodeItemDefsSeq(){
searchCodeItemDefsSeq(this.currentRow).then(({data}) => {
if (data && data.code === 0){
this.codeItemSeqList = data.rows;
}else {
this.$message.warning(data.msg)
}
}).catch((error) => {
this.$message.error(error)
})
},
searchCodeSeqGenerate(){
searchCodeSeqGenerate(this.currentRow).then(({data})=>{
if (data && data.code === 0){
this.seqNoGenerateList = data.rows.map(item=>item.relatedItemNo);
this.searchCodeItemDefsSeq();
}else {
this.$message.warning(data.msg)
}
}).catch((error) => {
this.$message.error(error)
})
},
clickSeqNoGenerateBtn(){
this.searchCodeSeqGenerate();
this.seqNoGenerateDialog = true;
},
closeSeqNoGenerate(){
this.seqNoGenerateList = [];
this.codeItemSeqList = [];
},
saveSeqNoGenerate(){
let arr = this.seqNoGenerateList.map(item=>{
return {
site:this.currentRow.site,
relatedItemNo:item,
itemNo:this.currentRow.itemNo,
}
})
let params = {...this.currentRow}
params.seqNoGenerateRules = arr;
saveCodeSeqGenerate(params).then(({data}) => {
if (data && data.code === 0){
this.$message.success(data.msg)
this.seqNoGenerateDialog = false;
}else {
this.$message.warning(data.msg)
}
}).catch((error) => {
this.$message.error(error)
})
}
},
created() {
@ -629,16 +695,16 @@ export default {
<!-- 操作按钮 -->
<el-form :inline="true" label-position="top">
<el-form-item label=" ">
<el-button type="primary" icon="el-icon-plus" @click="clickSave">新增</el-button>
<el-button type="primary" @click="clickSave">新增</el-button>
</el-form-item>
<el-form-item label=" ">
<el-form-item label=" " v-if="false">
<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-button :type="`${currentRow.itemType && 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-button type="primary" :type="`${currentRow.itemType && currentRow.itemType.includes('流水号') && currentRow.seqNoType === '指定元素'?'primary':'info'}`" :disabled="currentRow.itemType && !currentRow.itemType.includes('流水号') && currentRow.seqNoType === '指定元素'" @click="clickSeqNoGenerateBtn" plain>流水号产生规则</el-button>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="clickSettingDesc" plain>设置描述/备注产生规则</el-button>
@ -652,13 +718,7 @@ export default {
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"
@ -670,17 +730,18 @@ export default {
:min-width="item.columnWidth"
:label="item.columnLabel">
</el-table-column>
<el-table-column label="操作" align="left" header-align="center" width="150">
<el-table-column label="操作" align="center" 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>
<el-link style="cursor:pointer;" @click="clickEdit(row)">编辑</el-link>
<el-link style="cursor:pointer;" @click="clickCopy(row)">复制</el-link>
<el-link style="cursor:pointer;" @click="removeCodeItemDef(row)">删除</el-link>
</template>
</el-table-column>
</el-table>
<!--可选值-->
<el-dialog :visible.sync="defineOptionalValueFlag" v-drag title="定义可选值">
<el-dialog :visible.sync="defineOptionalValueFlag" v-drag title="可选值定义" top="10vh">
<item-value v-if="defineOptionalValueFlag" @close="defineOptionalValueFlag=false" :item-value="currentRow"></item-value>
</el-dialog>
<!--新增/修改弹框-->
@ -694,7 +755,7 @@ export default {
</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-input-number v-model="saveCodeItemDef.seqNo" :min="1" style="line-height: 1.5;width: 100%;" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
@ -707,7 +768,7 @@ export default {
</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-input-number v-model="saveCodeItemDef.bits" :min="1" style="line-height: 1.5;width: 100%;" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
@ -756,7 +817,7 @@ export default {
</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-input-number v-model="saveCodeItemDef.valueSeqNo" :min="1" style="line-height: 1.5;width: 100%;" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
@ -838,6 +899,26 @@ export default {
</el-table-column>
</el-table>
</el-dialog>
<el-dialog title="流水号产生规则" v-drag @close="closeSeqNoGenerate" :visible.sync="seqNoGenerateDialog" width="520px">
<el-form :inline="true" label-position="top" :model="currentRow">
<el-form-item :label="'序号'">
<el-input v-model="currentRow.itemNo" readonly style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'描述'">
<el-input v-model="currentRow.itemDesc" readonly style="width: 120px"></el-input>
</el-form-item>
</el-form>
<el-transfer class="rq" :props="{key: 'itemNo',label: 'itemDesc' }"
filterable v-model="seqNoGenerateList"
:data="codeItemSeqList" :titles="['元素列表', '已关联元素列表']">
<span slot-scope="{option}">{{option.itemNo}} / {{option.itemDesc}}</span>
</el-transfer>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="saveSeqNoGenerate">确定</el-button>
<el-button type="primary" @click="seqNoGenerateDialog = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
@ -855,4 +936,26 @@ export default {
line-height: 13px;
height: 21px;
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header {
height: 35px;
line-height: 35px;
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox {
line-height: 35px;
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label {
color: #fff
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span {
color: #3c3c3e;
}
.rq /deep/ .el-transfer-panel .el-checkbox__inner::after {
height: 8px;
width: 4px;
}
</style>

703
src/views/modules/code/item/itemValue.vue

@ -0,0 +1,703 @@
<script>
import {
removeCodeItemValue, removeCodeItemValueBatch,
saveCodeItemValue, saveCodeItemValueBatch,
searchCodeItemValueList,
searchCodeItemValueListItem, updateCodeItemValue
} from "../../../../api/code/codeItemValue"
import {
editCodeConditionHeader, removeCodeConditionHeader,
saveCodeConditionHeader,
searchCodeConditionHeaderList
} from "../../../../api/code/codeConditionHeader";
import {searchCodeItemDefs, searchCodeItemDefsSeq} from "../../../../api/code/codeItemDef";
import {
codeConditionDetailList,
removeConditionDetailList,
saveConditionDetailList
} from "../../../../api/code/codeConditionDetail";
const rules = {}
const detailRules = {}
const itemValueRules = {}
const rulesLabel = {
conditionDesc: "条件描述",
active: "是否有效",
}
const detailRulesLabel = {
SQLStatementExecuteItem: "元素名称",
SQLStatementExecuteValueItemNo: "元素可选值",
SQLStatementExecuteCalculate: "运算符号",
}
const itemValueRulesLabel = {
valueNo: "简码",
itemValue: "值",
}
Object.keys(rulesLabel).forEach(key => {
rules[key] = [
{
required: true,
message: `${rulesLabel[key]}不能为空`,
trigger: ['blur','input','change']
}
];
});
Object.keys(itemValueRulesLabel).forEach(key => {
itemValueRules[key] = [
{
required: true,
message: `${itemValueRulesLabel[key]}不能为空`,
trigger: ['blur','input','change']
}
];
});
Object.keys(detailRulesLabel).forEach(key => {
detailRules[key] = [
{
required: true,
message: `${detailRulesLabel[key]}不能为空`,
trigger: ['blur','input','change']
}
];
});
export default {
name: "itemValue",
props:{
itemValue:{
type:Object,
required:true
},
},
data(){
return{
selectionDetailIndex:-1,
conditionHeaderIndex:0,
itemValueList:[],
conditionHeaders:[],
conditionDetails:[],
saveFlag:"新增",
saveConditionHeaderFlag:false,
conditionHeader:{
conditionId:0,
},
saveRules:rules,
saveItemValueRules:itemValueRules,
rulesLabel:rulesLabel,
itemValueRulesLabel:itemValueRulesLabel,
saveItemValueFlag:false,
itemValueModal:{
valueNo:undefined,
itemValue: undefined,
},
itemDefs:[],
itemDefModalVisible:false,
detailRules:detailRules,
detailRulesLabel:detailRulesLabel,
conditionDetailModal:{
SQLStatementExecuteItem:undefined,
SQLStatementExecuteValue:undefined,
SQLStatementExecuteCalculate:undefined,
SQLStatementExecuteConditionId:undefined,
SQLStatementExecuteValueItemNo:undefined,
},
saveItemValueList:[],
saveItemValueListDialog:false,
itemValueListSelected:[],
itemValueAllList:[],
}
},
watch:{
conditionHeaderIndex(newVal,oldVal){
this.searchCodeItemValueListItem();
this.codeConditionDetailList();
}
},
methods: {
removeCodeItemValue(row){
this.$confirm(`确定要删除值"${row.itemValue}"吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
removeCodeItemValue(row).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.searchCodeItemValueListItem()
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}).catch(() => {})
},
getItemValueList(){
let params = {
itemNo: this.itemValue.itemNo,
site:this.$store.state.user.site
}
searchCodeItemValueList(params).then(({data})=>{
if (data && data.code === 0){
this.itemValueList = data.rows1
this.conditionHeaders = data.rows2
this.conditionDetails = data.rows3
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
searchConditionHeader(){
searchCodeConditionHeaderList(this.itemValue).then(({data})=>{
if (data && data.code === 0){
this.conditionHeaders = data.rows
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
clickSaveConditionHeaderBtn(){
this.conditionHeader = {
conditionId:this.conditionHeaders[this.conditionHeaders.length - 1].conditionId + 1,
itemNo:this.itemValue.itemNo,
site:this.$store.state.user.site,
active:'Y',
}
this.saveConditionHeaderFlag = true
},
saveConditionHeaderBtn(){
this.$refs.saveForm.validate((valid,obj) => {
if (valid){
if (this.saveFlag === "新增"){
this.saveCodeConditionHeader()
}else {
this.editCodeConditionHeader()
}
}else {
Object.keys(obj).forEach(key => {
this.$message.error(obj[key][0].message);
return
})
}
})
},
saveCodeConditionHeader(){
saveCodeConditionHeader(this.conditionHeader).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.saveConditionHeaderFlag = false
this.searchConditionHeader()
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
editConditionHeaderBtn(){
this.conditionHeader = {...this.conditionHeaders[this.conditionHeaderIndex]}
this.saveFlag = "编辑"
this.saveConditionHeaderFlag = true
},
editCodeConditionHeader(){
editCodeConditionHeader(this.conditionHeader).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.saveConditionHeaderFlag = false
this.searchConditionHeader()
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
closeSaveConditionHeader(){
this.$refs.saveForm.resetFields();
this.saveFlag = "新增";
},
removeConditionHeaderBtn(){
this.$confirm(`确定要删除条件"${this.conditionHeaders[this.conditionHeaderIndex].conditionDesc}"吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
removeCodeConditionHeader(this.conditionHeaders[this.conditionHeaderIndex]).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg);
this.conditionHeaderIndex = 0;
this.searchConditionHeader();
}else {
this.$message.warning(data.msg)
}
})
}).catch(() => {})
},
saveItemValueBtn(){
this.itemValueModal = {
valueNo:undefined,
itemValue: undefined,
site:this.itemValue.site,
itemNo:this.itemValue.itemNo,
conditionId:this.conditionHeaders[this.conditionHeaderIndex].conditionId,
}
this.saveItemValueFlag = true;
},
closeSaveItemValue(){
this.$refs.saveItemValueForm.resetFields();
this.saveFlag = "新增";
},
saveItemValue(){
this.$refs.saveItemValueForm.validate((valid,obj) => {
if (valid){
if (this.itemValueModal.valueNo && this.itemValueModal.valueNo.length > this.itemValue.bits){
this.$message.error(`该"简码"位数超出了元素设置最大值${this.itemValue.bits}!`);
return;
}
if (this.itemValueList.some(item=>item.valueNo === this.itemValueModal.valueNo)){
this.$confirm(`该"简码"${this.itemValueModal.valueNo}已存在, 继续保存?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.saveCodeItemValueData();
}).catch(() => {
});
}else {
this.saveCodeItemValueData();
}
}else {
Object.keys(obj).forEach(key => {
this.$message.error(obj[key][0].message);
return
})
}
})
},
saveCodeItemValueData(){
if (this.saveFlag === "新增"){
saveCodeItemValue(this.itemValueModal).then(({data})=>{
if (data && data.code === 0){
this.saveItemValueFlag = false
this.$message.success(data.msg)
this.searchCodeItemValueListItem()
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}else {
updateCodeItemValue(this.itemValueModal).then(({data})=>{
if (data && data.code === 0){
this.saveItemValueFlag = false
this.$message.success(data.msg)
this.searchCodeItemValueListItem()
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}
},
searchCodeItemValueListItem(){
let params = {
itemNo: this.itemValue.itemNo,
site:this.itemValue.site,
conditionId:this.conditionHeaders[this.conditionHeaderIndex].conditionId,
}
searchCodeItemValueListItem(params).then(({data})=>{
if (data && data.code === 0){
this.itemValueList = data.rows
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
clickSaveItemValueBtn(row){
this.itemValueModal = {...row}
this.saveFlag = "编辑"
this.saveItemValueFlag = true;
},
/**
* 获取当前itemDef次序前的itemDef列表
*/
searchCodeItemDefs(){
let params = {
site:this.itemValue.site,
itemNo:this.itemValue.itemNo,
seqNo:this.itemValue.seqNo,
}
searchCodeItemDefsSeq(params).then(({data})=>{
if (data && data.code === 0){
this.itemDefs = data.rows;
if (this.itemDefs.length > 0){
this.conditionDetailModal.SQLStatementExecuteItem = this.itemDefs[0].itemNo;
this.saveCodeItemValue(this.itemDefs[0]);
}
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
saveCodeItemValue(itemDef){
let params = {
itemNo: itemDef.itemNo,
site:itemDef.site,
}
searchCodeItemValueListItem(params).then(({data})=>{
if (data && data.code === 0){
this.saveItemValueList = data.rows;
this.$nextTick(()=>{
if (this.saveItemValueList.length > 0){
this.conditionDetailModal.SQLStatementExecuteValueItemNo = this.saveItemValueList[0].valueItemNo;
}
})
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
clickConditionDetailBtn(){
this.itemDefModalVisible = true;
this.conditionDetailModal.site = this.itemValue.site;
this.conditionDetailModal.itemNo = this.itemValue.itemNo;
this.conditionDetailModal.conditionId = this.conditionHeaders[this.conditionHeaderIndex].conditionId;
this.searchCodeItemDefs();
},
closeConditionDetail(){
Object.keys(this.conditionDetailModal).forEach(key => {
this.conditionDetailModal[key] = undefined;
});
},
changeItemDef(val){
let params = {
itemNo: val,
site:this.itemValue.site,
}
this.conditionDetailModal.SQLStatementExecuteValueItemNo = undefined;
this.saveCodeItemValue(params);
},
saveConditionDetail(){
this.$refs.formConditionDetail.validate((valid,obj) => {
if (valid){
saveConditionDetailList(this.conditionDetailModal).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.codeConditionDetailList();
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}else {
Object.keys(obj).forEach(key => {
this.$message.error(obj[key][0].message);
return
})
}
})
},
codeConditionDetailList(){
let params = {
itemNo: this.itemValue.itemNo,
site:this.itemValue.site,
conditionId:this.conditionHeaders[this.conditionHeaderIndex].conditionId,
}
codeConditionDetailList(params).then(({data})=>{
if (data && data.code === 0){
this.conditionDetails = data.rows
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
removeConditionDetailList(){
this.$confirm(`确定要删除条件"${this.conditionDetails[this.selectionDetailIndex].SQLStatementExecuteCalculate === 1 ? '并且' : '或者' }(${this.conditionDetails[this.selectionDetailIndex].itemDesc}=${this.conditionDetails[this.selectionDetailIndex].itemValue})"吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
removeConditionDetailList(this.conditionDetails[this.selectionDetailIndex]).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.codeConditionDetailList()
this.selectionDetailIndex = -1
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}).catch(() => {})
},
saveItemValueListBtn(){
this.itemValueListSelected = this.itemValueList.map(item=>item.valueItemNo);
let params = {
site:this.itemValue.site,
itemNo:this.itemValue.itemNo,
}
searchCodeItemValueListItem(params).then(({data})=>{
if (data && data.code === 0){
this.itemValueAllList = data.rows;
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
this.saveItemValueListDialog = true;
},
handleSelectChange(row,position,key){
let rows = key.map(item=>{
return {
site:this.itemValue.site,
itemNo:this.itemValue.itemNo,
valueItemNo:item,
conditionId:this.conditionHeaders[this.conditionHeaderIndex].conditionId,
}
})
if (position === 'left'){
//
this.removeCodeItemValueBatch(rows)
}else {
//
this.saveCodeItemValueBatch(rows)
}
},
removeCodeItemValueBatch(rows){
removeCodeItemValueBatch(rows).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.searchCodeItemValueListItem()
}else {
this.$message.warning(data.msg)
}
}).catch((error)=> {
this.$message.error(error)
})
},
saveCodeItemValueBatch(rows){
saveCodeItemValueBatch(rows).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.searchCodeItemValueListItem()
}else {
this.$message.warning(data.msg)
}
}).catch((error)=> {
this.$message.error(error)
})
}
},
created() {
this.getItemValueList()
}
}
</script>
<template>
<div>
<div>
<div>可选值列举的条件:</div>
<div style="border: 1px solid #ebeef5;padding: 5px 10px;box-shadow: 0 2px 12px 0 rgba(0,0,0,0.1)">
<span style="border-right: 1px solid #acacac;padding-right: 10px;">
<el-button type="primary" icon="el-icon-plus" @click="clickSaveConditionHeaderBtn" :disabled="itemValue.itemByCondition === 'N'">新增</el-button>
<el-button type="primary" icon="el-icon-edit" @click="editConditionHeaderBtn" :disabled="itemValue.itemByCondition === 'N'">编辑</el-button>
<el-button type="primary" icon="el-icon-delete" @click="removeConditionHeaderBtn" :disabled="itemValue.itemByCondition === 'N'">删除</el-button>
</span>
<span style="border-right: 1px solid #acacac;padding-right: 10px;">
<el-button type="primary" icon="el-icon-d-arrow-left" :disabled="itemValue.itemByCondition === 'N'" @click="conditionHeaderIndex = 0">首条</el-button>
<el-button type="primary" icon="el-icon-arrow-left" :disabled="itemValue.itemByCondition === 'N' || conditionHeaderIndex === 0" @click="conditionHeaderIndex--">前条</el-button>
<el-button type="primary" :disabled="itemValue.itemByCondition === 'N' || conditionHeaderIndex === conditionHeaders.length - 1" @click="conditionHeaderIndex++">后条<i class="el-icon-arrow-right el-icon--right"></i></el-button>
<el-button type="primary" :disabled="itemValue.itemByCondition === 'N'" @click="conditionHeaderIndex = conditionHeaders.length - 1">末条<i class="el-icon-d-arrow-right el-icon--right"></i></el-button>
</span>
<span>
<el-button type="primary" icon="el-icon-close" plain @click="$emit('close')">关闭</el-button>
<el-button type="primary" icon="el-icon-refresh" plain @click="searchConditionHeader">刷新</el-button>
</span>
</div>
<div style="display: flex;margin-top: 2px;gap: 2px">
<el-card class="box-card" style="width: 80%;">
<div slot="header" class="clearfix" style="padding: 10px 0">
<el-form v-if="conditionHeaders.length > 0" :inline="true" label-position="left" :model="conditionHeaders[conditionHeaderIndex]">
<el-form-item label="序号:">
<el-input-number disabled v-model="conditionHeaders[conditionHeaderIndex].conditionId" style="width: 100%" :min="1" :controls="false"></el-input-number>
</el-form-item>
<el-form-item label="条件描述:" label-width="70px">
<el-input readonly v-model="conditionHeaders[conditionHeaderIndex].conditionDesc" style="width: 100%"></el-input>
</el-form-item>
<el-form-item label="有效:">
<el-checkbox disabled v-model="conditionHeaders[conditionHeaderIndex].active" true-label="Y" false-label="N"></el-checkbox>
</el-form-item>
</el-form>
</div>
<div style="height: 200px;overflow-y: auto;">
<div v-for="(o, index) in conditionDetails" :key="o.seqNo" @click="selectionDetailIndex = index" :style="{backgroundColor: selectionDetailIndex === index? '#E8F7F6' : '#FFF'}" style="padding: 5px 0;cursor:pointer;border-bottom: 1px solid #ebeef5;color: #606266">
{{ `${o.SQLStatementExecuteCalculate === 1 ? '并且' : '或者' }(${o.itemDesc}=${o.itemValue})` }}
</div>
</div>
</el-card>
<div style="border: 1px solid #ebeef5;padding: 5px 10px;box-shadow: 0 2px 12px 0 rgba(0,0,0,0.1);width: 20%;display: flex;flex-direction: column;align-items: flex-start;justify-content: center">
<div>
<el-button type="primary" icon="el-icon-plus" @click="clickConditionDetailBtn" :disabled="itemValue.itemByCondition === 'N'">新增</el-button>
</div>
<div>
<el-button type="primary" icon="el-icon-delete" @click="removeConditionDetailList" :disabled="itemValue.itemByCondition === 'N' || selectionDetailIndex === -1">删除</el-button>
</div>
</div>
</div>
</div>
<div style="margin-top: 10px;border-top: 1px solid #ebeef5;">
<div>可选值列表:</div>
<div>
<el-button type="primary" @click="saveItemValueBtn">新增</el-button>
<el-button type="primary" @click="saveItemValueListBtn">快捷输入</el-button>
</div>
<el-table :data="itemValueList" height="300" border style="width: 100%">
<el-table-column prop="valueNo" header-align="center" align="left" min-width="120" width="140" label="简码"></el-table-column>
<el-table-column prop="itemValue" header-align="center" align="left" label="值"></el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="120">
<template slot-scope="{row,$index}">
<el-link style="cursor:pointer;" @click="clickSaveItemValueBtn(row)">编辑</el-link>
<el-link style="cursor:pointer;" @click="removeCodeItemValue(row)">删除</el-link>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog :title="`条件${saveFlag}`" v-drag :visible.sync="saveConditionHeaderFlag" @close="closeSaveConditionHeader" width="400px" append-to-body>
<el-form ref="saveForm" label-position="top" :model="conditionHeader" :rules="saveRules" label-width="80px">
<el-form-item label="序号:" prop="conditionId">
<el-input disabled v-model="conditionHeader.conditionId" style="width: 100%"></el-input>
</el-form-item>
<el-form-item label="条件描述:" prop="conditionDesc" :show-message="false">
<el-input v-model="conditionHeader.conditionDesc" style="width: 100%"></el-input>
</el-form-item>
<el-form-item label="有效:" prop="active">
<el-select v-model="conditionHeader.active" placeholder="请选择" :show-message="false">
<el-option label="Y" value="Y"></el-option>
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-footer style="height:30px;text-align:center;margin-top: 8px">
<el-button type="primary" @click="saveConditionHeaderBtn">保存</el-button>
<el-button type="primary" @click="saveConditionHeaderFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<!--可选值-->
<el-dialog :title="`可选值${saveFlag}`" v-drag :visible.sync="saveItemValueFlag" @close="closeSaveItemValue" width="400px" append-to-body>
<el-form ref="saveItemValueForm" label-position="top" :model="itemValueModal" :rules="saveItemValueRules" label-width="80px">
<el-form-item label="简码:" prop="valueNo" :show-message="false">
<el-input v-model="itemValueModal.valueNo" style="width: 100%"></el-input>
</el-form-item>
<el-form-item label="值:" prop="itemValue" :show-message="false">
<el-input v-model="itemValueModal.itemValue" style="width: 100%"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:30px;text-align:center;margin-top: 8px">
<el-button type="primary" @click="saveItemValue">保存</el-button>
<el-button type="primary" @click="saveItemValueFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="条件定义" v-drag :visible.sync="itemDefModalVisible" @close="closeConditionDetail" width="400px" append-to-body>
<el-form ref="formConditionDetail" label-position="top" :rules="detailRules" :model="conditionDetailModal" >
<el-form-item label="元素名称:" prop="SQLStatementExecuteItem" :show-message="false">
<el-select v-model="conditionDetailModal.SQLStatementExecuteItem" @change="changeItemDef">
<el-option v-for="(o, index) in itemDefs" :key="o.itemNo" :label="`(${o.itemNo})${o.itemDesc}`" :value="o.itemNo"></el-option>
</el-select>
</el-form-item>
<el-form-item label="元素可选值:" prop="SQLStatementExecuteValueItemNo" :show-message="false">
<el-select v-model="conditionDetailModal.SQLStatementExecuteValueItemNo">
<div v-for="(o, index) in saveItemValueList" :key="index">
<el-option :label="`(${o.valueNo})${o.itemValue}`" :value="o.valueItemNo"></el-option>
</div>
</el-select>
</el-form-item>
<el-form-item label="运算符号:" prop="SQLStatementExecuteCalculate" :show-message="false">
<el-select v-model="conditionDetailModal.SQLStatementExecuteCalculate" placeholder="请选择" >
<el-option label="并且" value="1"></el-option>
<el-option label="或者" value="0"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-footer style="height:30px;text-align:center;margin-top: 8px">
<el-button type="primary" @click="saveConditionDetail">应用</el-button>
<el-button type="primary" @click="itemDefModalVisible = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="元素可选值快速输入" v-drag :visible.sync="saveItemValueListDialog" append-to-body width="520px">
<el-form :inline="true" label-position="top" style="margin-bottom: 10px">
<el-form-item label="元素">
<el-input v-model="itemValue.itemDesc" readonly style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="条件描述">
<el-input v-if="conditionHeaders.length > 0" v-model="conditionHeaders[conditionHeaderIndex].conditionDesc" readonly style="width: 120px"></el-input>
</el-form-item>
</el-form>
<!--表格形式-->
<el-transfer class="rq" :props="{key: 'valueItemNo',label: 'itemValue' }"
filterable v-model="itemValueListSelected" @change="handleSelectChange"
:data="itemValueAllList" :titles="['全部值', '已选值']">
<span slot-scope="{option}">{{option.valueNo}} - {{option.itemValue}}</span>
</el-transfer>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="saveItemValueListDialog = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<style scoped>
.el-card /deep/ .el-card__header{
padding: 0px 20px;
}
.el-form-item /deep/ .el-form-item__content{
line-height: 30px ;
}
.el-input-number /deep/ .el-input__inner{
text-align: right;
padding-right: 15px !important;
padding-left: 0px !important;
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header {
height: 35px;
line-height: 35px;
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox {
line-height: 35px;
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label {
color: #fff
}
.rq /deep/ .el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span {
color: #3c3c3e;
}
.rq /deep/ .el-transfer-panel .el-checkbox__inner::after {
height: 8px;
width: 4px;
}
</style>

86
src/views/modules/code/setting.vue

@ -1,13 +1,93 @@
<script>
import {saveCodeParameter, searchCodeParameter} from "../../../api/code/codeParameterDef";
export default {
name: "CodeSetting"
name: "CodeSetting",
data(){
return{
list : [],
index:-1,
}
},
created() {
this.searchCodeParameter();
},
computed:{
copyList:{
get(){
let copyList = JSON.parse(JSON.stringify(this.list));
return copyList;
},
set(val){
this.list = val;
}
}
},
methods: {
searchCodeParameter(){
searchCodeParameter().then(({data})=>{
if (data && data.code === 0){
this.list = data.rows;
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
});
},
resetRow(){
this.copyList = JSON.parse(JSON.stringify(this.list));
this.index = -1;
},
saveParameter(row){
saveCodeParameter(row).then(({data})=>{
if (data && data.code === 0){
this.index = -1;
this.$message.success("保存成功");
this.searchCodeParameter();
}else {
this.$message.warning(data.msg);
}
}).catch((error)=>{
this.$message.error(error);
})
}
}
}
</script>
<template>
<h2>setting</h2>
<div>
<el-table :data="copyList" border style="width: 800px" height="400px">
<el-table-column prop="seqNo" width="60" header-align="center" align="right" label="序号"></el-table-column>
<el-table-column prop="parameterDesc" width="240" header-align="center" align="left" label="参数描述"></el-table-column>
<el-table-column prop="parameterType" header-align="center" align="left" label="参数类型"></el-table-column>
<el-table-column prop="parameterValue" header-align="center" align="left" label="参数值">
<template slot-scope="{row,$index}">
<div v-if="index === $index">
<el-input v-model="row.parameterValue" clearable placeholder="请输入参数值"></el-input>
</div>
<div v-else>
{{row.parameterValue}}
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="80" header-align="center" align="center">
<template slot-scope="{row,$index}">
<div v-if="index === $index">
<el-link style="cursor:pointer;" @click="saveParameter(row)">保存</el-link>
<el-link style="cursor:pointer;" @click="resetRow">取消</el-link>
</div>
<el-link style="cursor:pointer;" v-else @click="index = $index">编辑</el-link>
</template>
</el-table-column>
</el-table>
</div>
</template>
<style scoped>
.el-table /deep/ .cell{
height: auto;
line-height: 1.5;
}
</style>

4
src/views/modules/test/requestForTest.vue

@ -272,13 +272,13 @@
<el-input v-model="modalData.engineerName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="4" v-if="false">
<el-form-item label="设计师">
<span slot="label"><a herf="#" @click="getBaseList(2003)">设计师</a></span>
<el-input v-model="modalData.artworkName"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="4" v-if="false">
<el-form-item label="计划员">
<span slot="label"><a herf="#" @click="getBaseList(2004)">计划员</a></span>
<el-input v-model="modalData.plannerName"></el-input>

Loading…
Cancel
Save