Browse Source

2024-09-02

master
qiezi 1 year ago
parent
commit
7e36c5dd4a
  1. 4
      src/api/quotation/quoteDetail.js
  2. 111
      src/views/modules/code/item/itemValue.vue
  3. 13
      src/views/modules/quotation/sellForQuotation/quoteDetail.vue

4
src/api/quotation/quoteDetail.js

@ -7,3 +7,7 @@ export const saveQuoteDetail = (data)=>createAPI(`/quote/detail/save`,'post',dat
export const updateQuoteDetail = (data)=>createAPI(`/quote/detail/update`,'post',data)
export const removeQuoteDetail = (data)=>createAPI(`/quote/detail/remove`,'post',data)
export const getQuoteDetailBomById = (data) => createAPI(`/quote/detail/bom`,'post',data)
export const getQuoteDetailRoutingById = (data) => createAPI('/quote/detail/routing','post',data)

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

@ -12,7 +12,7 @@ import {
} from "../../../../api/code/codeConditionHeader";
import {searchCodeItemDefs, searchCodeItemDefsSeq} from "../../../../api/code/codeItemDef";
import {
codeConditionDetailList,
codeConditionDetailList, editConditionDetailList,
removeConditionDetailList,
saveConditionDetailList
} from "../../../../api/code/codeConditionDetail";
@ -100,6 +100,7 @@ export default {
SQLStatementExecuteCalculate:undefined,
SQLStatementExecuteConditionId:undefined,
SQLStatementExecuteValueItemNo:undefined,
SQLStatementExecuteFlag:'N',
},
saveItemValueList:[],
saveItemValueListDialog:false,
@ -372,16 +373,17 @@ export default {
})
},
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();
this.itemDefModalVisible = true;
},
closeConditionDetail(){
Object.keys(this.conditionDetailModal).forEach(key => {
this.conditionDetailModal[key] = undefined;
});
this.conditionDetailModal.SQLStatementExecuteFlag = 'N';
},
changeItemDef(val){
let params = {
@ -394,16 +396,11 @@ export default {
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)
})
if (this.conditionDetailModal.seqNo){
this.handleUpdateConditionDetail();
}else {
this.handleSaveConditionDetail();
}
}else {
Object.keys(obj).forEach(key => {
this.$message.error(obj[key][0].message);
@ -412,6 +409,31 @@ export default {
}
})
},
handleSaveConditionDetail(){
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)
})
},
handleUpdateConditionDetail(){
editConditionDetailList(this.conditionDetailModal).then(({data})=>{
if (data && data.code === 0){
this.$message.success(data.msg)
this.codeConditionDetailList();
this.itemDefModalVisible = false;
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
},
codeConditionDetailList(){
let params = {
itemNo: this.itemValue.itemNo,
@ -428,6 +450,11 @@ export default {
this.$message.error(error)
})
},
handleEditConditionDetail(){
this.conditionDetailModal = {...this.conditionDetails[this.selectionDetailIndex]}
this.searchCodeItemDefs();
this.itemDefModalVisible = true
},
removeConditionDetailList(){
this.$confirm(`确定要删除条件"${this.conditionDetails[this.selectionDetailIndex].SQLStatementExecuteCalculate === 1 ? '并且' : '或者' }(${this.conditionDetails[this.selectionDetailIndex].itemDesc}=${this.conditionDetails[this.selectionDetailIndex].itemValue})"吗?`, '提示', {
confirmButtonText: '确定',
@ -566,7 +593,11 @@ export default {
<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;font-size: 12px;line-height: 14px;">
{{ `${o.SQLStatementExecuteCalculate === '1' ? '并且' : '或者' }(${o.itemDesc}=${o.itemValue})` }}
<!-- {{`${o.SQLStatementExecuteCalculate === '1' ? '并且' : '或者' }(${o.itemDesc}=${o.itemValue})`}}-->
<span v-if="o.SQLStatementExecuteCalculate === '1'">并且 {{`(${o.itemDesc}=${o.itemValue})`}}</span>
<span v-else-if="o.SQLStatementExecuteCalculate === '0'">或者 {{`(${o.itemDesc}=${o.itemValue})`}}</span>
<span v-else-if="o.SQLStatementExecuteCalculate === '2'">并且 .. { {{`(${o.itemDesc}=${o.itemValue})`}}</span>
<span v-if="o.SQLStatementExecuteFlag === 'Y'">.. }</span>
</div>
</div>
</el-card>
@ -574,6 +605,9 @@ export default {
<div style="text-align: center">
<el-button type="primary" icon="el-icon-plus" @click="clickConditionDetailBtn" :disabled="itemValue.itemByCondition === 'N'">新增</el-button>
</div>
<div style="text-align: center">
<el-button type="primary" icon="el-icon-edit" @click="handleEditConditionDetail" :disabled="itemValue.itemByCondition === 'N' || selectionDetailIndex === -1">编辑</el-button>
</div>
<div style="text-align: center">
<el-button type="primary" icon="el-icon-delete" @click="removeConditionDetailList" :disabled="itemValue.itemByCondition === 'N' || selectionDetailIndex === -1">删除</el-button>
</div>
@ -653,27 +687,42 @@ export default {
<el-dialog title="条件定义" v-drag :close-on-click-modal="false" :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-row :gutter="10">
<el-col :span="12">
<el-form-item label="运算符号:" prop="SQLStatementExecuteCalculate" :show-message="false">
<el-select v-model="conditionDetailModal.SQLStatementExecuteCalculate" style="width: 100%" placeholder="请选择" >
<el-option label="并且" value="1"></el-option>
<el-option label="并且..{" value="2"></el-option>
<el-option label="或者" value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="元素名称:" prop="SQLStatementExecuteItem" :show-message="false">
<el-select v-model="conditionDetailModal.SQLStatementExecuteItem" style="width: 100%" @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-col>
<el-col :span="12">
<el-form-item label="元素可选值:" prop="SQLStatementExecuteValueItemNo" :show-message="false">
<el-select v-model="conditionDetailModal.SQLStatementExecuteValueItemNo" style="width: 100%">
<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-col>
</el-row>
<el-form-item label="" prop="SQLStatementExecuteValueFlag" :show-message="false">
<el-checkbox v-model="conditionDetailModal.SQLStatementExecuteFlag" true-label="Y" false-label="N">添加括号</el-checkbox>
</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" v-if="!conditionDetailModal.seqNo" @click="saveConditionDetail">应用</el-button>
<el-button type="primary" v-else @click="handleUpdateConditionDetail">确定</el-button>
<el-button type="primary" @click="itemDefModalVisible = false">关闭</el-button>
</el-footer>
</el-dialog>

13
src/views/modules/quotation/sellForQuotation/quoteDetail.vue

@ -1017,6 +1017,9 @@ export default {
this.projectPartDialogFlag = true
},
handleToBom(row){
let params = {
}
},
handleToRouting(row){
@ -1043,7 +1046,15 @@ export default {
<el-link style="cursor: pointer" @click="editQuotationDetail(row,$index+1)">编辑</el-link>
<el-link style="cursor: pointer" @click="deleteQuotationDetailData(row)">删除</el-link>
<el-link style="cursor: pointer" @click="deleteQuotationDetailData(row)">删除</el-link>
<el-dropdown trigger="click">
<el-link style="cursor: pointer;font-size: 12px">
更多
</el-link >
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="handleToBom">BOM</el-dropdown-item>
<el-dropdown-item @click.native="handleToRouting">Routing</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
<el-table-column

Loading…
Cancel
Save