From dd3b01e1d5a5c204c9171fe77e7d5376ea3e0222 Mon Sep 17 00:00:00 2001 From: yuanwei <362142050@qq.com> Date: Sat, 2 Dec 2023 22:38:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E5=88=92=E7=AE=A1=E7=90=86=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/auth/authDept.js | 8 + src/views/purchase/purApply/purApply.vue | 5 +- .../purchase/purApply/pureApplyAudit.vue | 7 +- .../purchase/purApply/pureApplyMySearch.vue | 5 +- .../purchase/purApply/pureApplySearch.vue | 5 +- src/views/purchase/purPlan/purPlan.vue | 522 +++++++++++++---- src/views/purchase/purPlan/purPlanAudit.vue | 518 +++++++++++++---- src/views/purchase/purPlan/purPlanSearch.vue | 545 +++++++++++++----- 8 files changed, 1230 insertions(+), 385 deletions(-) diff --git a/src/api/auth/authDept.js b/src/api/auth/authDept.js index 568a4b50..b6f78d2c 100644 --- a/src/api/auth/authDept.js +++ b/src/api/auth/authDept.js @@ -49,6 +49,14 @@ export function getDeptListByUser(params) { }); } +export function getDeptListByUserOptimize(params) { + return axios({ + url: "/spms/inv/warehouse/filterByUserOptimize", + method: "get", + params: params + }); +} + diff --git a/src/views/purchase/purApply/purApply.vue b/src/views/purchase/purApply/purApply.vue index 99af8374..38068dec 100644 --- a/src/views/purchase/purApply/purApply.vue +++ b/src/views/purchase/purApply/purApply.vue @@ -546,7 +546,7 @@ export default { }; this.initActDateRange() if (deptCode != this.invCodebe) { - this.getInvList() + this.getInvList(this) } this.actDateRange = []; this.getList(); @@ -740,7 +740,7 @@ export default { _this.invCodebe = _this.filterQuery.targetDeptCode } _this.getList(); - _this.getInvList(); + _this.getInvList(_this); }); }, initActDateRange() { @@ -798,7 +798,6 @@ export default { this.initActDateRange() this.getCurInvList(this); this.getDeptList(this); - this.getInvList(this); } , } diff --git a/src/views/purchase/purApply/pureApplyAudit.vue b/src/views/purchase/purApply/pureApplyAudit.vue index f589a568..34f84774 100644 --- a/src/views/purchase/purApply/pureApplyAudit.vue +++ b/src/views/purchase/purApply/pureApplyAudit.vue @@ -539,7 +539,7 @@ export default { targetInvCode: null }; if (deptCode != this.invCodebe) { - this.getInvList() + this.getInvList(this) } this.actDateRange = []; this.getList(); @@ -673,7 +673,7 @@ export default { }, deptChange() { - this.getInvList(); + this.getInvList(this); this.getList(); }, getInvList(_this) { @@ -688,7 +688,7 @@ export default { getDeptList(_this) { filterDeptsOptimize().then((res) => { _this.options.getDeptList = res.data || []; - _this.getInvList(); + _this.getInvList(_this); _this.getList(); }); }, @@ -753,7 +753,6 @@ export default { this.actDateRange = [start, end]; this.getCurInvList(this); this.getDeptList(this); - this.getInvList(this); } , } diff --git a/src/views/purchase/purApply/pureApplyMySearch.vue b/src/views/purchase/purApply/pureApplyMySearch.vue index 34e7cc22..1ae48fdb 100644 --- a/src/views/purchase/purApply/pureApplyMySearch.vue +++ b/src/views/purchase/purApply/pureApplyMySearch.vue @@ -597,7 +597,7 @@ export default { targetDeptCode: this.invCodebe, }; if (targetDeptCode != this.invCodebe) { - this.getInvList() + this.getInvList(this) } this.actDateRange = []; this.actAuditDateRange = []; @@ -764,7 +764,7 @@ export default { _this.invCodebe = _this.filterQuery.targetDeptCode } _this.getList(); - _this.getInvList(); + _this.getInvList(_this); }); }, printOrder(_this,row) { @@ -830,7 +830,6 @@ export default { }); this.getCurInvList(this); this.getDeptList(this); - this.getInvList(this); } , } diff --git a/src/views/purchase/purApply/pureApplySearch.vue b/src/views/purchase/purApply/pureApplySearch.vue index d703cd17..bc615652 100644 --- a/src/views/purchase/purApply/pureApplySearch.vue +++ b/src/views/purchase/purApply/pureApplySearch.vue @@ -596,7 +596,7 @@ export default { deptCode: this.invCodebe, }; if (deptCode != this.invCodebe) { - this.getInvList() + this.getInvList(this) } this.actDateRange = []; this.actAuditDateRange = []; @@ -770,7 +770,7 @@ export default { _this.invCodebe = _this.filterQuery.deptCode } _this.getList(); - _this.getInvList(); + _this.getInvList(_this); }); }, getCurInvList(_this) { @@ -830,7 +830,6 @@ export default { }); this.getCurInvList(this); this.getDeptList(this); - this.getInvList(this); } , diff --git a/src/views/purchase/purPlan/purPlan.vue b/src/views/purchase/purPlan/purPlan.vue index 325979fc..c3a1ec78 100644 --- a/src/views/purchase/purPlan/purPlan.vue +++ b/src/views/purchase/purPlan/purPlan.vue @@ -1,72 +1,136 @@ <template> <div> <el-card class="el-card"> - <el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch"> - <el-row> - <el-col :span="8"> - <el-form-item label="采购单号"> - <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input> - </el-form-item> - </el-col> + <el-form v-if="queryList && queryList.length > 0" :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch"> +<!-- <el-row>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购单号">--> +<!-- <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> - <el-col :span="8"> - <el-form-item label="采购部门"> - <el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择申购部门" style="width: 90%"> - <el-option - v-for="item in deptList" - :key="item.code" - :label="item.name" - :value="item.code" - > - <span style="float: left">{{ item.name }}</span> - </el-option> - </el-select> - </el-form-item> - </el-col> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购部门">--> +<!-- <el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择申购部门" style="width: 90%">--> +<!-- <el-option--> +<!-- v-for="item in deptList"--> +<!-- :key="item.code"--> +<!-- :label="item.name"--> +<!-- :value="item.code"--> +<!-- >--> +<!-- <span style="float: left">{{ item.name }}</span>--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> + +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购仓库">--> +<!-- <el-select v-model="filterQuery.invCode" style="width: 90%" clearable placeholder="请选择所属仓库">--> +<!-- <el-option--> +<!-- v-for="item in invList"--> +<!-- :key="item.name"--> +<!-- :label="item.name"--> +<!-- :value="item.code">--> +<!-- <span style="float: left">{{ item.name }}</span>--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- </el-row>--> - <el-col :span="8"> - <el-form-item label="采购仓库"> - <el-select v-model="filterQuery.invCode" style="width: 90%" clearable placeholder="请选择所属仓库"> +<!-- <el-row>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="紧急程度:" prop="emergency">--> +<!-- <el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>--> +<!-- <el-option label="正常" :value=1></el-option>--> +<!-- <el-option label="较急" :value=2></el-option>--> +<!-- <el-option label="特急" :value=3></el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="创建时间:">--> +<!-- <el-date-picker--> +<!-- :picker-options="pickerOptions"--> +<!-- v-model="actDateRange"--> +<!-- type="daterange"--> +<!-- format="yyyy 年 MM 月 dd 日"--> +<!-- style="width: 90%"--> +<!-- value-format="yyyy-MM-dd"--> +<!-- range-separator="至"--> +<!-- start-placeholder="开始日期"--> +<!-- end-placeholder="结束日期"--> +<!-- >--> +<!-- </el-date-picker>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- </el-row>--> + <el-row style=" display:flex; flex-wrap: wrap; "> + <template v-for="(item, index) in queryList" > + <el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`" :key="item.id"> + <el-input + v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + @keyup.enter.native="executeFuc($event,'5',item.clickFuc)" + clearable + ></el-input> + </el-form-item> + <el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-select v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + clearable> <el-option - v-for="item in invList" - :key="item.name" - :label="item.name" - :value="item.code"> - <span style="float: left">{{ item.name }}</span> - </el-option> + v-for="dict in item.lableRuleObj" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> </el-select> </el-form-item> - </el-col> - </el-row> - - <el-row> - <el-col :span="8"> - <el-form-item label="紧急程度:" prop="emergency"> - <el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable> - <el-option label="正常" :value=1></el-option> - <el-option label="较急" :value=2></el-option> - <el-option label="特急" :value=3></el-option> + <el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-select + v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + filterable + remote + :remote-method="(query) => executeFuc(query,'5',item.clickFuc)" + clearable> + <el-option + v-for="item in options[item.clickFuc]" + :key="item.code" + :label="item.label" + :value="item.code" + /> </el-select> </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="创建时间:"> + <el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> <el-date-picker :picker-options="pickerOptions" v-model="actDateRange" type="daterange" format="yyyy 年 MM 月 dd 日" - style="width: 90%" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" - > - </el-date-picker> + ></el-date-picker> </el-form-item> - </el-col> + <el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-date-picker + v-model="filterQuery[item.columnName]" + :style="`width:${item.width+'px'}`" + value-format="yyyy-MM-dd" + :disabled="executeEval(null,item.disabledFuc,false)" + type="date" + :placeholder="item.columnDesc" + ></el-date-picker> + </el-form-item> + </template> </el-row> - </el-form> <div class="top-right-btn"> @@ -81,34 +145,122 @@ <el-divider style="margin: 15px"></el-divider> <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row - @current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange"> - <el-table-column label="序号" type="index" width="60"></el-table-column> - <el-table-column label="采购单号" prop="billNo"></el-table-column> - <el-table-column label="采购部门" prop="deptName"></el-table-column> - <el-table-column label="采购仓库" prop="invName"></el-table-column> - <el-table-column label="紧急程度" prop="emergency"> - <template slot-scope="scope"> - {{ emergencyMap[scope.row.emergency] }} - </template> - </el-table-column> - <el-table-column label="到货截止" prop="arrivalTime"></el-table-column> - <el-table-column label="单据状态" prop="status"> - <template slot-scope="scope"> - <el-tag :type="(scope.row.status) | statusFilterType"> - {{ statusMap[scope.row.status] }} - </el-tag> - </template> - </el-table-column> - <el-table-column label="创建时间" prop="createTime" - sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> + @current-change="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" + :default-sort="defaultSort" @sort-change="handleSortChange"> +<!-- <el-table-column label="序号" type="index" width="60"></el-table-column>--> +<!-- <el-table-column label="采购单号" prop="billNo"></el-table-column>--> +<!-- <el-table-column label="采购部门" prop="deptName"></el-table-column>--> +<!-- <el-table-column label="采购仓库" prop="invName"></el-table-column>--> +<!-- <el-table-column label="紧急程度" prop="emergency">--> +<!-- <template slot-scope="scope">--> +<!-- {{ emergencyMap[scope.row.emergency] }}--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="到货截止" prop="arrivalTime"></el-table-column>--> +<!-- <el-table-column label="单据状态" prop="status">--> +<!-- <template slot-scope="scope">--> +<!-- <el-tag :type="(scope.row.status) | statusFilterType">--> +<!-- {{ statusMap[scope.row.status] }}--> +<!-- </el-tag>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="创建时间" prop="createTime"--> +<!-- sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>--> - <el-table-column label="操作" width="120"> - <template slot-scope="scope"> - <el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑 - </el-button> - <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button> - </template> - </el-table-column> +<!-- <el-table-column label="操作" width="120">--> +<!-- <template slot-scope="scope">--> +<!-- <el-button type="text" size="small" @click.native="newDistributionForm(scope.$index, scope.row)">编辑--> +<!-- </el-button>--> +<!-- <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button>--> +<!-- </template>--> +<!-- </el-table-column>--> + <template v-for="(item, index) in tableHeader"> + <el-table-column + v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" + type="index" :label="item.columnDesc"></el-table-column> + <el-table-column + v-if="item.columnType == 'selection'" + type="selection" + :width="item.width" + :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" + ></el-table-column> + + <el-table-column + v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> + <span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span> + </el-tag> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :width="item.width" + :key="item.columnName" + fixed="right" + > + <template slot-scope="scope"> + <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" + :type="buttonItem.type" + :size="buttonItem.size" + :style="buttonItem.style" + :key="buttonItem" + v-if="executeEval(scope.row,buttonItem.hasPermi,true)" + :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" + @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" + >{{ buttonItem.name }} + </el-button> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span> + </template> + </el-table-column> + </template> </el-table> @@ -123,15 +275,102 @@ </el-card> <el-card class="el-card"> <el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row> - <el-table-column label="序号" type="index" width="60"></el-table-column> - <el-table-column label="DI/物资编码" prop="nameCode"></el-table-column> - <el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column> - <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column> - <el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column> - <el-table-column label="申购数量" prop="count"></el-table-column> - <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column> - <el-table-column label="生产厂家" prop="manufactory"></el-table-column> - <el-table-column label="供应商" prop="supName"></el-table-column> +<!-- <el-table-column label="序号" type="index" width="60"></el-table-column>--> +<!-- <el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>--> +<!-- <el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>--> +<!-- <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>--> +<!-- <el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>--> +<!-- <el-table-column label="申购数量" prop="count"></el-table-column>--> +<!-- <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>--> +<!-- <el-table-column label="生产厂家" prop="manufactory"></el-table-column>--> +<!-- <el-table-column label="供应商" prop="supName"></el-table-column>--> + <template v-for="(item, index) in tableHeader2"> + <el-table-column + v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" + type="index" :label="item.columnDesc"></el-table-column> + <el-table-column + v-if="item.columnType == 'selection'" + type="selection" + :width="item.width" + :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" + ></el-table-column> + + <el-table-column + v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> + <span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span> + </el-tag> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :width="item.width" + :key="item.columnName" + fixed="right" + > + <template slot-scope="scope"> + <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" + :type="buttonItem.type" + :size="buttonItem.size" + :style="buttonItem.style" + :key="buttonItem" + v-if="executeEval(scope.row,buttonItem.hasPermi,true)" + :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" + @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" + >{{ buttonItem.name }} + </el-button> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span> + </template> + </el-table-column> + </template> </el-table> </el-card> @@ -159,8 +398,11 @@ import purPlanEdit from "./purPlanEditDialog"; import {delApply, inserThrOrderWeb, listPlan, listApplyDetail, delPlanDetailAll} from "@/api/purchase/purPlan"; import {delApplyDetailAll} from "@/api/purchase/purApply"; import { getInvListByUser } from '@/api/system/invWarehouse' -import { getDeptListByUser } from '@/api/auth/authDept' -import {filterSubAll} from "@/api/system/invSubWarehouse"; +import {getDeptListByUser, getDeptListByUserOptimize} from '@/api/auth/authDept' +import {filterSubAll, filterSubAllOptimize} from "@/api/system/invSubWarehouse"; +import { + getHead,executeFuc +} from "@/utils/customConfig"; export default { data() { @@ -197,6 +439,16 @@ export default { }, idQuery: {}, total: 0, + tableHeader:[], + queryList:[], + fromList:[], + tableHeader2:[], + queryList2:[], + fromList2:[], + options: { + getInvList:[], + getDeptList:[], + }, thirdSys: [], thirdSysDetail: null, busTypes: [], @@ -268,7 +520,7 @@ export default { invCode:null }; this.actDateRange = []; - this.getInvList() + this.getInvList(this) this.getList(); }, handleClose() { @@ -341,18 +593,18 @@ export default { this.total = 0; }); }, - handleDetail(row) { + handleDetail(_this,row) { let query = {orderIdFk: row.id}; - this.loading = true; + _this.loading = true; listApplyDetail(query) //查找该单号下的所有条码 .then((response) => { - this.detailList = response.data.list || []; - this.loading = false; + _this.detailList = response.data.list || []; + _this.loading = false; }) .catch(() => { - this.loading = false; - this.detailList = []; - this.total = 0; + _this.loading = false; + _this.detailList = []; + _this.total = 0; }); }, submitOrder(row) { @@ -384,8 +636,8 @@ export default { .catch(() => { }); }, - deleteDialog(row) { - this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { + deleteDialog(_this,row) { + _this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", @@ -393,16 +645,16 @@ export default { .then(() => { delPlanDetailAll({id: row.id}) .then((response) => { - this.loading = false; + _this.loading = false; if (response.code == 20000) { - this.$message.success("删除成功"); - this.getList(); + _this.$message.success("删除成功"); + _this.getList(); } else { - this.$message.error(response.message); + _this.$message.error(response.message); } }) .catch(() => { - this.loading = false; + _this.loading = false; }); }) @@ -419,39 +671,50 @@ export default { this.getList(); this.detailList = []; }, - getInvList() { + getInvList(_this) { var query={ parentId:this.filterQuery.deptCode } this.filterQuery.invCode = null - filterSubAll(query).then((res) => { - this.invList = res.data || []; + filterSubAllOptimize(query).then((res) => { + _this.options.getInvList = res.data || []; }) }, - getDeptList() { - getDeptListByUser().then((res) => { - this.deptList = res.data || []; - if(this.deptList.length>0){ - this.filterQuery.deptCode=this.deptList[0].code - this.invCodebe=this.filterQuery.deptCode + getDeptList(_this) { + getDeptListByUserOptimize().then((res) => { + _this.options.getDeptList = res.data || []; + if( _this.options.getDeptList.length>0){ + _this.filterQuery.deptCode= _this.options.getDeptList[0].code + _this.invCodebe=this.filterQuery.deptCode } - this.getList(); - this. getInvList(); + _this.getList(); + _this.getInvList(_this); }); }, - newDistributionForm(index, row) { - this.idQuery.id = ''; - if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) { - this.idQuery.id = row.id; - this.idQuery.formData = row; - this.formName = "update"; + newDistributionForm(_this, row) { + if(_this == null){ + _this = this + } + _this.idQuery.id = ''; + if (_this.$isNotBlank(row) && _this.$isNotBlank(row.id)) { + _this.idQuery.id = row.id; + _this.idQuery.formData = row; + _this.formName = "update"; } else - this.formName = "add"; - this.newSpDistributionVisible = true; + _this.formName = "add"; + _this.newSpDistributionVisible = true; }, - + executeFuc(row,type,clickFuc,value){ + return executeFuc(this,row,type,clickFuc,value); + }, + executeEval(row,expression,defaultRet){ + if(expression){ + return eval(expression); + } + return defaultRet; + } } , components: { @@ -473,7 +736,22 @@ export default { } , created() { - this.getDeptList(); + this.getDeptList(this); + // this.finCorpList(); + getHead("purPlan-1","1").then((re) => { + // 处理返回的数据 + this.tableObj = re.data; + this.tableHeader = re.data.tableList; + this.queryList = re.data.queryList; + this.fromList = re.data.fromList; + }); + getHead("purPlan-2","1").then((re) => { + // 处理返回的数据 + this.tableObj2 = re.data; + this.tableHeader2 = re.data.tableList; + this.queryList2 = re.data.queryList; + this.fromList2 = re.data.fromList; + }); } , } diff --git a/src/views/purchase/purPlan/purPlanAudit.vue b/src/views/purchase/purPlan/purPlanAudit.vue index 511be713..be139aa3 100644 --- a/src/views/purchase/purPlan/purPlanAudit.vue +++ b/src/views/purchase/purPlan/purPlanAudit.vue @@ -1,70 +1,135 @@ <template> <div> <el-card class="el-card"> - <el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch"> - <el-row> - <el-col :span="8"> - <el-form-item label="采购单号"> - <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input> - </el-form-item> - </el-col> + <el-form v-if="queryList && queryList.length > 0" :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch"> +<!-- <el-row>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购单号">--> +<!-- <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> - <el-col :span="8"> - <el-form-item label="采购部门"> - <el-select v-model="filterQuery.deptCode" placeholder="请选择申购部门" @change="getInvList" style="width: 90%"> - <el-option - v-for="item in deptList" - :key="item.code" - :label="item.name" - :value="item.code" - > - <span style="float: left">{{ item.name }}</span> - </el-option> - </el-select> - </el-form-item> - </el-col> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购部门">--> +<!-- <el-select v-model="filterQuery.deptCode" placeholder="请选择申购部门" @change="getInvList" style="width: 90%">--> +<!-- <el-option--> +<!-- v-for="item in deptList"--> +<!-- :key="item.code"--> +<!-- :label="item.name"--> +<!-- :value="item.code"--> +<!-- >--> +<!-- <span style="float: left">{{ item.name }}</span>--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> + +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购仓库">--> +<!-- <el-select v-model="filterQuery.invCode" style="width: 90%" placeholder="请选择所属仓库">--> +<!-- <el-option--> +<!-- v-for="item in invList"--> +<!-- :key="item.name"--> +<!-- :label="item.name"--> +<!-- :value="item.code">--> +<!-- <span style="float: left">{{ item.name }}</span>--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- </el-row>--> - <el-col :span="8"> - <el-form-item label="采购仓库"> - <el-select v-model="filterQuery.invCode" style="width: 90%" placeholder="请选择所属仓库"> +<!-- <el-row>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="紧急程度:" prop="emergency">--> +<!-- <el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>--> +<!-- <el-option label="正常" :value=1></el-option>--> +<!-- <el-option label="较急" :value=2></el-option>--> +<!-- <el-option label="特急" :value=3></el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="创建时间:">--> +<!-- <el-date-picker--> +<!-- :picker-options="pickerOptions"--> +<!-- v-model="actDateRange"--> +<!-- type="daterange"--> +<!-- format="yyyy 年 MM 月 dd 日"--> +<!-- style="width: 90%"--> +<!-- value-format="yyyy-MM-dd"--> +<!-- range-separator="至"--> +<!-- start-placeholder="开始日期"--> +<!-- end-placeholder="结束日期"--> +<!-- >--> +<!-- </el-date-picker>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- </el-row>--> + <el-row style=" display:flex; flex-wrap: wrap; "> + <template v-for="(item, index) in queryList" > + <el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`" :key="item.id"> + <el-input + v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + @keyup.enter.native="executeFuc($event,'5',item.clickFuc)" + clearable + ></el-input> + </el-form-item> + <el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-select v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + clearable> <el-option - v-for="item in invList" - :key="item.name" - :label="item.name" - :value="item.code"> - <span style="float: left">{{ item.name }}</span> - </el-option> + v-for="dict in item.lableRuleObj" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> </el-select> </el-form-item> - </el-col> - </el-row> - - <el-row> - <el-col :span="8"> - <el-form-item label="紧急程度:" prop="emergency"> - <el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable> - <el-option label="正常" :value=1></el-option> - <el-option label="较急" :value=2></el-option> - <el-option label="特急" :value=3></el-option> + <el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-select + v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + filterable + remote + :remote-method="(query) => executeFuc(query,'5',item.clickFuc)" + clearable> + <el-option + v-for="item in options[item.clickFuc]" + :key="item.code" + :label="item.label" + :value="item.code" + /> </el-select> </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="创建时间:"> + <el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> <el-date-picker :picker-options="pickerOptions" v-model="actDateRange" type="daterange" format="yyyy 年 MM 月 dd 日" - style="width: 90%" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" - > - </el-date-picker> + ></el-date-picker> + </el-form-item> + <el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-date-picker + v-model="filterQuery[item.columnName]" + :style="`width:${item.width+'px'}`" + value-format="yyyy-MM-dd" + :disabled="executeEval(null,item.disabledFuc,false)" + type="date" + :placeholder="item.columnDesc" + ></el-date-picker> </el-form-item> - </el-col> + </template> </el-row> </el-form> @@ -78,35 +143,123 @@ <el-divider style="margin: 15px"></el-divider> <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row - @current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange"> - <el-table-column label="序号" type="index" width="60"></el-table-column> - <el-table-column label="采购单号" prop="billNo"></el-table-column> - <el-table-column label="采购部门" prop="deptName"></el-table-column> - <el-table-column label="采购仓库" prop="invName"></el-table-column> - <el-table-column label="紧急程度" prop="emergency"> - <template slot-scope="scope"> - {{ emergencyMap[scope.row.emergency] }} - </template> - </el-table-column> - <el-table-column label="到货截止" prop="arrivalTime"></el-table-column> - <el-table-column label="单据状态" prop="status"> - <template slot-scope="scope"> - <el-tag :type="(scope.row.status) | statusFilterType"> - {{ statusMap[scope.row.status] }} - </el-tag> - </template> - </el-table-column> - <el-table-column label="创建时间" prop="createTime" - sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> + @current-change="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" + :default-sort="defaultSort" @sort-change="handleSortChange"> +<!-- <el-table-column label="序号" type="index" width="60"></el-table-column>--> +<!-- <el-table-column label="采购单号" prop="billNo"></el-table-column>--> +<!-- <el-table-column label="采购部门" prop="deptName"></el-table-column>--> +<!-- <el-table-column label="采购仓库" prop="invName"></el-table-column>--> +<!-- <el-table-column label="紧急程度" prop="emergency">--> +<!-- <template slot-scope="scope">--> +<!-- {{ emergencyMap[scope.row.emergency] }}--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="到货截止" prop="arrivalTime"></el-table-column>--> +<!-- <el-table-column label="单据状态" prop="status">--> +<!-- <template slot-scope="scope">--> +<!-- <el-tag :type="(scope.row.status) | statusFilterType">--> +<!-- {{ statusMap[scope.row.status] }}--> +<!-- </el-tag>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="创建时间" prop="createTime"--> +<!-- sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>--> - <el-table-column label="操作" width="60px"> - <template slot-scope="scope"> - <el-button type="text" :disabled="scope.row.status!=2" - @click.native="newDistributionForm(scope.$index, scope.row)">审核 - </el-button> - </template> - </el-table-column> +<!-- <el-table-column label="操作" width="60px">--> +<!-- <template slot-scope="scope">--> +<!-- <el-button type="text" :disabled="scope.row.status!=2"--> +<!-- @click.native="newDistributionForm(scope.$index, scope.row)">审核--> +<!-- </el-button>--> +<!-- </template>--> +<!-- </el-table-column>--> + <template v-for="(item, index) in tableHeader"> + <el-table-column + v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" + type="index" :label="item.columnDesc"></el-table-column> + <el-table-column + v-if="item.columnType == 'selection'" + type="selection" + :width="item.width" + :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" + ></el-table-column> + + <el-table-column + v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> + <span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span> + </el-tag> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :width="item.width" + :key="item.columnName" + fixed="right" + > + <template slot-scope="scope"> + <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" + :type="buttonItem.type" + :size="buttonItem.size" + :style="buttonItem.style" + :key="buttonItem" + v-if="executeEval(scope.row,buttonItem.hasPermi,true)" + :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" + @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" + >{{ buttonItem.name }} + </el-button> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span> + </template> + </el-table-column> + </template> </el-table> <pagination @@ -122,15 +275,102 @@ </el-card> <el-card class="el-card"> <el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row> - <el-table-column label="序号" type="index" width="60"></el-table-column> - <el-table-column label="DI/物资编码" prop="nameCode"></el-table-column> - <el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column> - <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column> - <el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column> - <el-table-column label="申购数量" prop="count"></el-table-column> - <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column> - <el-table-column label="生产厂家" prop="manufactory"></el-table-column> - <el-table-column label="供应商" prop="supName"></el-table-column> +<!-- <el-table-column label="序号" type="index" width="60"></el-table-column>--> +<!-- <el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>--> +<!-- <el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>--> +<!-- <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>--> +<!-- <el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>--> +<!-- <el-table-column label="申购数量" prop="count"></el-table-column>--> +<!-- <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>--> +<!-- <el-table-column label="生产厂家" prop="manufactory"></el-table-column>--> +<!-- <el-table-column label="供应商" prop="supName"></el-table-column>--> + <template v-for="(item, index) in tableHeader2"> + <el-table-column + v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" + type="index" :label="item.columnDesc"></el-table-column> + <el-table-column + v-if="item.columnType == 'selection'" + type="selection" + :width="item.width" + :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" + ></el-table-column> + + <el-table-column + v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> + <span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span> + </el-tag> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :width="item.width" + :key="item.columnName" + fixed="right" + > + <template slot-scope="scope"> + <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" + :type="buttonItem.type" + :size="buttonItem.size" + :style="buttonItem.style" + :key="buttonItem" + v-if="executeEval(scope.row,buttonItem.hasPermi,true)" + :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" + @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" + >{{ buttonItem.name }} + </el-button> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span> + </template> + </el-table-column> + </template> </el-table> </el-card> @@ -155,8 +395,11 @@ import purPlanEdit from "./purPlanDetailDialog"; import {delApply, auditListPlan, listApplyDetail} from "@/api/purchase/purPlan"; import { getInvListByUser } from '@/api/system/invWarehouse' -import { getDeptListByUser } from '@/api/auth/authDept' -import {filterSubAll} from "@/api/system/invSubWarehouse"; +import {getDeptListByUser, getDeptListByUserOptimize} from '@/api/auth/authDept' +import {filterSubAll, filterSubAllOptimize} from "@/api/system/invSubWarehouse"; +import { + getHead,executeFuc +} from "@/utils/customConfig"; export default { data() { @@ -198,6 +441,16 @@ export default { idQuery: {}, editType: 1, total: 0, + tableHeader:[], + queryList:[], + fromList:[], + tableHeader2:[], + queryList2:[], + fromList2:[], + options: { + getInvList:[], + getDeptList:[], + }, thirdSys: [], thirdSysDetail: null, busTypes: [], @@ -262,7 +515,7 @@ export default { deptCode: this.invCodebe, invCode:null }; - this.getInvList() + this.getInvList(this) this.actDateRange = []; this.getList(); }, @@ -313,21 +566,21 @@ export default { this.total = 0; }); }, - handleDetail(row) { + handleDetail(_this,row) { let query = {orderIdFk: row.id}; - this.loading = true; + _this.loading = true; listApplyDetail(query) //查找该单号下的所有条码 .then((response) => { - this.detailList = response.data.list || []; - this.loading = false; + _this.detailList = response.data.list || []; + _this.loading = false; }) .catch(() => { - this.loading = false; - this.detailList = []; + _this.loading = false; + _this.detailList = []; }); }, - deleteDialog(row) { - this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { + deleteDialog(_this,row) { + _this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", @@ -335,16 +588,16 @@ export default { .then(() => { delApply(row.id) .then((response) => { - this.loading = false; + _this.loading = false; if (response.code == 20000) { - this.$message.success("删除成功"); - this.getList(); + _this.$message.success("删除成功"); + _this.getList(); } else { - this.$message.error(response.message); + _this.$message.error(response.message); } }) .catch(() => { - this.loading = false; + _this.loading = false; }); }) @@ -363,36 +616,45 @@ export default { }, - newDistributionForm(index, row) { - this.idQuery.id = ''; - if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) { - this.idQuery.id = row.id; - this.idQuery.formData = row; - this.formName = "update"; + newDistributionForm(_this, row) { + _this.idQuery.id = ''; + if (_this.$isNotBlank(row) && _this.$isNotBlank(row.id)) { + _this.idQuery.id = row.id; + _this.idQuery.formData = row; + _this.formName = "update"; } else - this.formName = "add"; - this.newSpDistributionVisible = true; + _this.formName = "add"; + _this.newSpDistributionVisible = true; }, - getInvList() { + getInvList(_this) { var query={ - parentId:this.filterQuery.deptCode + parentId:_this.filterQuery.deptCode } - this.filterQuery.invCode = null - filterSubAll(query).then((res) => { - this.invList = res.data || []; + _this.filterQuery.invCode = null + filterSubAllOptimize(query).then((res) => { + _this.options.getInvList = res.data || []; }) }, - getDeptList() { - getDeptListByUser().then((res) => { - this.deptList = res.data || []; - if(this.deptList.length>0){ - this.filterQuery.deptCode=this.deptList[0].code - this.invCodebe=this.filterQuery.deptCode + getDeptList(_this) { + getDeptListByUserOptimize().then((res) => { + _this.options.getDeptList = res.data || []; + if( _this.options.getDeptList.length>0){ + _this.filterQuery.deptCode= _this.options.getDeptList[0].code + _this.invCodebe=this.filterQuery.deptCode } - this.getList(); - this. getInvList(); + _this.getList(); + _this.getInvList(_this); }); }, + executeFuc(row,type,clickFuc,value){ + return executeFuc(this,row,type,clickFuc,value); + }, + executeEval(row,expression,defaultRet){ + if(expression){ + return eval(expression); + } + return defaultRet; + } } , components: { @@ -414,7 +676,21 @@ export default { } , created() { - this.getDeptList(); + this.getDeptList(this); + getHead("purPlanAudit-1","1").then((re) => { + // 处理返回的数据 + this.tableObj = re.data; + this.tableHeader = re.data.tableList; + this.queryList = re.data.queryList; + this.fromList = re.data.fromList; + }); + getHead("purPlanAudit-2","1").then((re) => { + // 处理返回的数据 + this.tableObj2 = re.data; + this.tableHeader2 = re.data.tableList; + this.queryList2 = re.data.queryList; + this.fromList2 = re.data.fromList; + }); } , } diff --git a/src/views/purchase/purPlan/purPlanSearch.vue b/src/views/purchase/purPlan/purPlanSearch.vue index 58ad5e25..696f2132 100644 --- a/src/views/purchase/purPlan/purPlanSearch.vue +++ b/src/views/purchase/purPlan/purPlanSearch.vue @@ -1,84 +1,161 @@ <template> <div> <el-card> - <el-form :model="filterQuery" class="query-form" label-width="100px" size="mini" v-show="showSearch"> - <el-row> - <el-col :span="8"> - <el-form-item label="采购单号"> - <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入采购单号" clearable></el-input> + <el-form v-if="queryList && queryList.length > 0" :model="filterQuery" class="query-form" label-width="100px" size="mini" v-show="showSearch"> +<!-- <el-row>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购单号">--> +<!-- <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入采购单号" clearable></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购部门">--> +<!-- <el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择采购部门" style="width: 90%">--> +<!-- <el-option--> +<!-- v-for="item in deptList"--> +<!-- :key="item.code"--> +<!-- :label="item.name"--> +<!-- :value="item.code"--> +<!-- >--> +<!-- <span style="float: left">{{ item.name }}</span>--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="采购仓库">--> +<!-- <el-select v-model="filterQuery.invCode" style="width: 90%" clearable placeholder="请选择所属仓库">--> +<!-- <el-option--> +<!-- v-for="item in invList"--> +<!-- :key="item.name"--> +<!-- :label="item.name"--> +<!-- :value="item.code">--> +<!-- <span style="float: left">{{ item.name }}</span>--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- </el-row>--> + +<!-- <el-row>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="紧急程度:" prop="emergency">--> +<!-- <el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable>--> +<!-- <el-option label="正常" :value=1></el-option>--> +<!-- <el-option label="较急" :value=2></el-option>--> +<!-- <el-option label="特急" :value=3></el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="创建时间:">--> +<!-- <el-date-picker--> +<!-- :picker-options="pickerOptions"--> +<!-- v-model="actDateRange"--> +<!-- type="daterange"--> +<!-- format="yyyy 年 MM 月 dd 日"--> +<!-- style="width: 90%"--> +<!-- value-format="yyyy-MM-dd"--> +<!-- range-separator="至"--> +<!-- start-placeholder="开始日期"--> +<!-- end-placeholder="结束日期"--> +<!-- >--> +<!-- </el-date-picker>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="8">--> +<!-- <el-form-item label="审核时间:">--> +<!-- <el-date-picker--> +<!-- :picker-options="pickerAuditOptions"--> +<!-- v-model="actAuditDateRange"--> +<!-- type="daterange"--> +<!-- format="yyyy 年 MM 月 dd 日"--> +<!-- style="width: 90%"--> +<!-- value-format="yyyy-MM-dd"--> +<!-- range-separator="至"--> +<!-- start-placeholder="开始日期"--> +<!-- end-placeholder="结束日期"--> +<!-- >--> +<!-- </el-date-picker>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- </el-row>--> + <el-row style=" display:flex; flex-wrap: wrap; "> + <template v-for="(item, index) in queryList" > + <el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`" :key="item.id"> + <el-input + v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + @keyup.enter.native="executeFuc($event,'5',item.clickFuc)" + clearable + ></el-input> </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="采购部门"> - <el-select v-model="filterQuery.deptCode" @change="getInvList" placeholder="请选择采购部门" style="width: 90%"> + <el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-select v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + clearable> <el-option - v-for="item in deptList" - :key="item.code" - :label="item.name" - :value="item.code" - > - <span style="float: left">{{ item.name }}</span> - </el-option> + v-for="dict in item.lableRuleObj" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> </el-select> </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="采购仓库"> - <el-select v-model="filterQuery.invCode" style="width: 90%" clearable placeholder="请选择所属仓库"> + <el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-select + v-model="filterQuery[item.columnName]" + :placeholder="item.columnDesc" + :disabled="executeEval(null,item.disabledFuc,false)" + filterable + remote + :remote-method="(query) => executeFuc(query,'5',item.clickFuc)" + clearable> <el-option - v-for="item in invList" - :key="item.name" - :label="item.name" - :value="item.code"> - <span style="float: left">{{ item.name }}</span> - </el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - - <el-row> - <el-col :span="8"> - <el-form-item label="紧急程度:" prop="emergency"> - <el-select v-model="filterQuery.emergency" placeholder="请选择紧急程度" style="width: 90%" clearable> - <el-option label="正常" :value=1></el-option> - <el-option label="较急" :value=2></el-option> - <el-option label="特急" :value=3></el-option> + v-for="item in options[item.clickFuc]" + :key="item.code" + :label="item.label" + :value="item.code" + /> </el-select> </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="创建时间:"> + <el-form-item v-if="item.columnType == 'datePicker' && item.columnName == 'actDateRange' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> <el-date-picker :picker-options="pickerOptions" v-model="actDateRange" type="daterange" format="yyyy 年 MM 月 dd 日" - style="width: 90%" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" - > - </el-date-picker> + ></el-date-picker> </el-form-item> - </el-col> - <el-col :span="8"> - <el-form-item label="审核时间:"> + <el-form-item v-if="item.columnType == 'datePicker' && item.columnName == 'actAuditDateRange' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> <el-date-picker - :picker-options="pickerAuditOptions" + :picker-options="pickerOptions" v-model="actAuditDateRange" type="daterange" format="yyyy 年 MM 月 dd 日" - style="width: 90%" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" - > - </el-date-picker> + ></el-date-picker> </el-form-item> - </el-col> + <el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)" :label="item.columnDesc+`:`"> + <el-date-picker + v-model="filterQuery[item.columnName]" + :style="`width:${item.width+'px'}`" + value-format="yyyy-MM-dd" + :disabled="executeEval(null,item.disabledFuc,false)" + type="date" + :placeholder="item.columnDesc" + ></el-date-picker> + </el-form-item> + </template> </el-row> </el-form> @@ -93,36 +170,124 @@ <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row="true" - @current-change="handleDetail" :default-sort="defaultSort" @sort-change="handleSortChange"> - <el-table-column label="序号" type="index" width="60"></el-table-column> - <el-table-column label="采购计划单号" prop="billNo"></el-table-column> - <el-table-column label="采购部门" prop="deptName"></el-table-column> - <el-table-column label="采购仓库" prop="invName"></el-table-column> - <el-table-column label="紧急程度" prop="emergency"> - <template slot-scope="scope"> - {{ emergencyMap[scope.row.emergency] }} - </template> - </el-table-column> - <el-table-column label="到货截止" prop="arrivalTime"></el-table-column> - <el-table-column label="状态" prop="status"> - <template slot-scope="scope"> - <el-tag :type="(scope.row.status) | statusFilterType"> - {{ statusMap[scope.row.status] }} - </el-tag> - </template> - </el-table-column> - <el-table-column label="创建时间" prop="createTime" - sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column> - <el-table-column label="审核时间" prop="auditTime" - sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column> + @current-change="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" + :default-sort="defaultSort" @sort-change="handleSortChange"> +<!-- <el-table-column label="序号" type="index" width="60"></el-table-column>--> +<!-- <el-table-column label="采购计划单号" prop="billNo"></el-table-column>--> +<!-- <el-table-column label="采购部门" prop="deptName"></el-table-column>--> +<!-- <el-table-column label="采购仓库" prop="invName"></el-table-column>--> +<!-- <el-table-column label="紧急程度" prop="emergency">--> +<!-- <template slot-scope="scope">--> +<!-- {{ emergencyMap[scope.row.emergency] }}--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="到货截止" prop="arrivalTime"></el-table-column>--> +<!-- <el-table-column label="状态" prop="status">--> +<!-- <template slot-scope="scope">--> +<!-- <el-tag :type="(scope.row.status) | statusFilterType">--> +<!-- {{ statusMap[scope.row.status] }}--> +<!-- </el-tag>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="创建时间" prop="createTime"--> +<!-- sortable="custom" :sort-orders="['ascending', 'descending']"></el-table-column>--> +<!-- <el-table-column label="审核时间" prop="auditTime"--> +<!-- sortable="custom" :sort-orders="['ascending', 'descending']" ></el-table-column>--> - <el-table-column label="操作"> - <template slot-scope="scope"> - <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)" - >删除 - </el-button> - </template> - </el-table-column> +<!-- <el-table-column label="操作">--> +<!-- <template slot-scope="scope">--> +<!-- <el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)"--> +<!-- >删除--> +<!-- </el-button>--> +<!-- </template>--> +<!-- </el-table-column>--> + <template v-for="(item, index) in tableHeader"> + <el-table-column + v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" + type="index" :label="item.columnDesc"></el-table-column> + <el-table-column + v-if="item.columnType == 'selection'" + type="selection" + :width="item.width" + :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" + ></el-table-column> + + <el-table-column + v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> + <span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span> + </el-tag> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :width="item.width" + :key="item.columnName" + fixed="right" + > + <template slot-scope="scope"> + <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" + :type="buttonItem.type" + :size="buttonItem.size" + :style="buttonItem.style" + :key="buttonItem" + v-if="executeEval(scope.row,buttonItem.hasPermi,true)" + :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" + @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" + >{{ buttonItem.name }} + </el-button> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span> + </template> + </el-table-column> + </template> </el-table> @@ -138,15 +303,102 @@ </el-card> <el-card class="el-card"> <el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row="true"> - <el-table-column label="序号" type="index" width="60"></el-table-column> - <el-table-column label="DI/物资编码" prop="nameCode"></el-table-column> - <el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column> - <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column> - <el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column> - <el-table-column label="申购数量" prop="count"></el-table-column> - <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column> - <el-table-column label="生产厂家" prop="manufactory"></el-table-column> - <el-table-column label="供应商" prop="supName"></el-table-column> +<!-- <el-table-column label="序号" type="index" width="60"></el-table-column>--> +<!-- <el-table-column label="DI/物资编码" prop="nameCode"></el-table-column>--> +<!-- <el-table-column label="物资名称" prop="productName" show-overflow-tooltip="true"></el-table-column>--> +<!-- <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>--> +<!-- <el-table-column label="计量单位" prop="measname" show-overflow-tooltip="true" width="100"></el-table-column>--> +<!-- <el-table-column label="申购数量" prop="count"></el-table-column>--> +<!-- <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>--> +<!-- <el-table-column label="生产厂家" prop="manufactory"></el-table-column>--> +<!-- <el-table-column label="供应商" prop="supName"></el-table-column>--> + <template v-for="(item, index) in tableHeader2"> + <el-table-column + v-if="item.columnType == 'id' && executeEval(row,item.expression,true)" + type="index" :label="item.columnDesc"></el-table-column> + <el-table-column + v-if="item.columnType == 'selection'" + type="selection" + :width="item.width" + :selectable="(row,number) => executeFuc(row,'3',item.clickFuc)" + ></el-table-column> + + <el-table-column + v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{ item.lableRuleObj[scope.row[item.columnName]] }}</span> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <el-tag :type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])"> + <span>{{ item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName] }}</span> + </el-tag> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'button' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :width="item.width" + :key="item.columnName" + fixed="right" + > + <template slot-scope="scope"> + <el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj" + :type="buttonItem.type" + :size="buttonItem.size" + :style="buttonItem.style" + :key="buttonItem" + v-if="executeEval(scope.row,buttonItem.hasPermi,true)" + :disabled="executeEval(scope.row,buttonItem.disabledFuc,false)" + @click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)" + >{{ buttonItem.name }} + </el-button> + </template> + </el-table-column> + <el-table-column + v-if="item.columnType == 'text' && executeEval(row,item.expression,true)" + :prop="item.columnName" + :label="item.columnDesc" + :sortable="item.sort" + :width="item.width" + :show-overflow-tooltip="item.tooltip" + :key="item.columnName" + > + <template slot-scope="scope"> + <span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{ scope.row[item.columnName] }}</span> + </template> + </el-table-column> + </template> </el-table> </el-card> @@ -173,8 +425,11 @@ import purPlanEdit from "./purPlanDetailDialog"; import {delApply, listPlan, listApplyDetail, delPlanDetailAll, delApplyDetail} from "@/api/purchase/purPlan"; import { getInvListByUser } from '@/api/system/invWarehouse' -import { getDeptListByUser } from '@/api/auth/authDept' -import {filterSubAll} from "@/api/system/invSubWarehouse"; +import {getDeptListByUser, getDeptListByUserOptimize} from '@/api/auth/authDept' +import {filterSubAll, filterSubAllOptimize} from "@/api/system/invSubWarehouse"; +import { + getHead,executeFuc +} from "@/utils/customConfig"; export default { data() { @@ -216,6 +471,16 @@ export default { idQuery: {}, editType: 1, total: 0, + tableHeader:[], + queryList:[], + fromList:[], + tableHeader2:[], + queryList2:[], + fromList2:[], + options: { + getInvList:[], + getDeptList:[], + }, thirdSys: [], thirdSysDetail: null, busTypes: [], @@ -310,7 +575,7 @@ export default { editStatus: 1, deptCode: this.invCodebe, }; - this.getInvList(); + this.getInvList(this); this.actDateRange = []; this.actAuditDateRange = []; this.getList(); @@ -369,22 +634,22 @@ export default { this.total = 0; }); }, - handleDetail(row) { + handleDetail(_this,row) { let query = {orderIdFk: row.id}; - this.loading = true; + _this.loading = true; listApplyDetail(query) //查找该单号下的所有条码 .then((response) => { - this.detailList = response.data.list || []; - this.loading = false; + _this.detailList = response.data.list || []; + _this.loading = false; }) .catch(() => { - this.loading = false; - this.detailList = []; - this.total = 0; + _this.loading = false; + _this.detailList = []; + _this.total = 0; }); }, - deleteDialog(row) { - this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { + deleteDialog(_this,row) { + _this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", @@ -392,16 +657,16 @@ export default { .then(() => { delPlanDetailAll(row) .then((response) => { - this.loading = false; + _this.loading = false; if (response.code == 20000) { - this.$message.success("删除成功"); - this.getList(); + _this.$message.success("删除成功"); + _this.getList(); } else { - this.$message.error(response.message); + _this.$message.error(response.message); } }) .catch(() => { - this.loading = false; + _this.loading = false; }); }) @@ -418,37 +683,45 @@ export default { this.getList(); this.detailList = []; }, - getInvList() { + getInvList(_this) { var query={ - parentId:this.filterQuery.deptCode + parentId:_this.filterQuery.deptCode } - filterSubAll(query).then((res) => { - this.invList = res.data || []; + filterSubAllOptimize(query).then((res) => { + _this.options.getInvList = res.data || []; }) }, - getDeptList() { - getDeptListByUser().then((res) => { - this.deptList = res.data || []; - if(this.deptList.length>0){ - this.filterQuery.deptCode=this.deptList[0].code - this.invCodebe=this.filterQuery.deptCode + getDeptList(_this) { + getDeptListByUserOptimize().then((res) => { + _this.options.getDeptList = res.data || []; + if( _this.options.getDeptList.length>0){ + _this.filterQuery.deptCode= _this.options.getDeptList[0].code + _this.invCodebe=this.filterQuery.deptCode } - this.getList(); - this. getInvList(); + _this.getList(); + _this.getInvList(_this); }); }, - newDistributionForm(index, row) { - this.idQuery.id = ''; - if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) { - this.idQuery.id = row.id; - this.idQuery.formData = row; - this.formName = "update"; + newDistributionForm(_this, row) { + _this.idQuery.id = ''; + if (_this.$isNotBlank(row) && _this.$isNotBlank(row.id)) { + _this.idQuery.id = row.id; + _this.idQuery.formData = row; + _this.formName = "update"; } else - this.formName = "add"; - this.newSpDistributionVisible = true; + _this.formName = "add"; + _this.newSpDistributionVisible = true; }, - + executeFuc(row,type,clickFuc,value){ + return executeFuc(this,row,type,clickFuc,value); + }, + executeEval(row,expression,defaultRet){ + if(expression){ + return eval(expression); + } + return defaultRet; + } } , components: { @@ -471,7 +744,21 @@ export default { } , created() { - this.getDeptList(); + this.getDeptList(this); + getHead("purPlanSearch-1","1").then((re) => { + // 处理返回的数据 + this.tableObj = re.data; + this.tableHeader = re.data.tableList; + this.queryList = re.data.queryList; + this.fromList = re.data.fromList; + }); + getHead("purPlanSearch-2","1").then((re) => { + // 处理返回的数据 + this.tableObj2 = re.data; + this.tableHeader2 = re.data.tableList; + this.queryList2 = re.data.queryList; + this.fromList2 = re.data.fromList; + }); } , }