From a67fb8cc8644174b16c3cfe8082b7cf61e5b85e9 Mon Sep 17 00:00:00 2001 From: value <z1292839451@163.com> Date: 星期五, 10 五月 2024 09:53:10 +0800 Subject: [PATCH] 复核按钮权限恢复 --- src/components/view/b2-standard.vue | 1640 ++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 979 insertions(+), 661 deletions(-) diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue index c203284..755a9c9 100644 --- a/src/components/view/b2-standard.vue +++ b/src/components/view/b2-standard.vue @@ -1,693 +1,1011 @@ <style scoped> - .standard { - padding: 20px 0; - display: flex; - } + .standard { + padding: 20px 0; + display: flex; + } - .left { - width: 270px; - height: calc(100% - 40px - 30px); - background-color: white; - padding: 15px; - } + .left { + width: 270px; + height: calc(100% - 40px - 30px); + background-color: white; + padding: 15px; + } - .custom-tree-node { - width: 100%; - line-height: 32px; - } + .custom-tree-node { + width: 100%; + line-height: 32px; + } - .custom-tree-node .el-icon-delete { - color: #3A7BFA; - opacity: 0; - font-size: 18px; - } + .custom-tree-node .el-icon-delete { + color: #3A7BFA; + opacity: 0; + font-size: 18px; + } - .custom-tree-node:hover .el-icon-delete { - opacity: 1; - } + .custom-tree-node:hover .el-icon-delete { + opacity: 1; + } - .node_i { - color: orange; - font-size: 18px; - } + .node_i { + color: orange; + font-size: 18px; + } - .right { - margin-left: 5px; - width: calc(100% - 305px); - height: calc(100% - 40px); - } + .right { + margin-left: 5px; + width: calc(100% - 305px); + height: calc(100% - 40px); + } - .right .title { - height: 50px; - line-height: 50px; - padding: 0 10px; - background-color: white; - } + .right .title { + height: 50px; + line-height: 50px; + padding: 0 10px; + background-color: white; + } - .standard_table { - border-top: 1px solid #ebeef5; - background-color: white; - } + .standard_table { + border-top: 1px solid #ebeef5; + background-color: white; + } - .product_table { - border-top: 1px solid #ebeef5; - height: calc(100% - 275px); - margin-top: 5px; - background-color: white; - } + .product_table { + border-top: 1px solid #ebeef5; + height: calc(100% - 275px); + margin-top: 5px; + background-color: white; + user-select: none; + } - .product_table .el-table { - height: 100%; - } + .product_table .el-table { + height: 100%; + } + + .sort { + width: 80% !important; + overflow: hidden; + } </style> <style> - .standard .el-tree-node__content { - height: 32px; - font-size: 14px; - border-radius: 2px; - } + .standard .el-tree-node__content { + height: 32px; + font-size: 14px; + border-radius: 2px; + } - .standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { - color: #3A7BFA; - } + .standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { + color: #3A7BFA; + } - .standard .has-gutter .el-table__cell .cell { - line-height: 38px; - background-color: #fafafa; - } + .standard .has-gutter .el-table__cell .cell { + line-height: 34px; + background-color: #f8f8f8; + } - .standard .has-gutter .el-table__cell { - background-color: #fafafa !important; - } + .standard .has-gutter .el-table__cell { + background-color: #fafafa !important; + } - .standard .standard_table .el-table__row .cell { - font-size: 14px; - } + .standard .standard_table .el-table__row .cell { + font-size: 14px; + } + + .standard .el-table .warning-row .cell { + color: #bababa; + } </style> <template> - <div class="standard"> - <div class="left"> - <el-row> - <el-col :span="20"> - <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small" - style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter"></el-input> - </el-col> - <el-col :span="4" style="text-align: center;line-height: 30px;" v-if="addPower"> - <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button> - </el-col> - </el-row> - <el-tree :data="list" ref="tree" default-expand-all :props="{ children: 'children', label: 'label' }" - node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current - @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"> - <div class="custom-tree-node" slot-scope="{ node, data }"> - <el-row> - <el-col :span="21"> - <span><i - :class="`node_i ${data.children != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i> - {{ data.code }} {{ data.label }}</span> - </el-col> - <el-col :span="2" style="text-align: right;" v-if="delStandardTree"> - <el-button type="text" size="mini" @click.stop="remove(node, data)"> - <i class="el-icon-delete"></i> - </el-button> - </el-col> - </el-row> - </div> - </el-tree> - </div> - <div class="right"> - <el-row class="title"> - <el-col :span="10" style="font-size: 14px;color: #999;">{{selectTree}}</el-col> - <el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''"> - <el-button size="small" type="primary" @click="addStandardDia = true" + <div class="standard"> + <div class="left"> + <el-row> + <el-col :span="20"> + <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small" + style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter"></el-input> + </el-col> + <el-col :span="4" style="text-align: center;line-height: 30px;" v-if="addPower"> + <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button> + </el-col> + </el-row> + <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label" + :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" + @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false" + :default-expanded-keys="expandedKeys" + style="height:calc(100% - 30px);overflow-y: scroll;scrollbar-width: none;"> + <div class="custom-tree-node" slot-scope="{ node, data }"> + <el-row style="width: 100%;"> + <el-col :span="21" :class="{sort:node.level>3}" :title="data.label"> + <span><i + :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i> + {{ data.code }} {{ data.label }}</span> + </el-col> + <el-col :span="2" style="text-align: right;" v-if="delStandardTree"> + <el-button type="text" size="mini" @click.stop="remove(node, data)"> + <i class="el-icon-delete"></i> + </el-button> + </el-col> + </el-row> + </div> + </el-tree> + </div> + <div class="right"> + <el-row class="title"> + <el-col :span="24" style="font-size: 14px;color: #999;">{{selectTree}}</el-col> + <!-- <el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''"> --> + <!-- <el-button size="small" type="primary" @click="addStandardDia = true" v-if="addStandardMethod">鏂板鏍囧噯</el-button> <el-button size="small" type="primary" @click="addProductDia = true" v-if="addStandardProduct">鏂板椤圭洰</el-button> <el-button size="small" @click="delStandardProductByIds" v-if="delStandardProduct"> <i class="el-icon-delete" style="color: #3A7BFA;"></i> <span style="color: #3A7BFA;">鍒犻櫎</span> - </el-button> - </el-col> - </el-row> - <el-row class="standard_table" v-loading="tableLoad"> - <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark"> - <el-table-column prop="code" label="鏍囧噯缂栧彿" show-overflow-tooltip> - <template slot-scope="scope"> - <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span> - </template> - </el-table-column> - <el-table-column prop="name" label="鏍囧噯鍚嶇О" show-overflow-tooltip></el-table-column> - <el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip></el-table-column> - <el-table-column prop="createUserName" label="鍒涘缓浜�"></el-table-column> - <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="250px"></el-table-column> - <el-table-column label="鎿嶄綔" width="100" align="center" v-if="delStandardMethod"> + </el-button> --> + <!-- </el-col> --> + </el-row> + <el-row class="standard_table" v-loading="tableLoad"> + <el-table class="el-table" :data="standardList" style="width: 100%;" height="220" tooltip-effect="dark" + highlight-current-row @row-click="rowClick" ref="standard"> + <el-table-column prop="code" label="鏍囧噯缂栧彿" show-overflow-tooltip width="200"> + <template slot-scope="scope"> + <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span> + </template> + </el-table-column> + <el-table-column prop="name" label="鏍囧噯鍚嶇О" show-overflow-tooltip></el-table-column> + <el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip></el-table-column> + <!-- <el-table-column prop="createUserName" label="鍒涘缓浜�"></el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="250px"></el-table-column> --> + <!-- <el-table-column label="鎿嶄綔" width="100" align="center" v-if="delStandardMethod"> <template slot-scope="scope"> <el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">鍒犻櫎</el-button> </template> - </el-table-column> - </el-table> - </el-row> - <el-row class="product_table" v-loading="tableLoad"> - <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border - @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="65"></el-table-column> - <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column> - <!-- <el-table-column prop="inspectionItemClassify" label="妫�楠岄」绫诲瀷" width="120" show-overflow-tooltip></el-table-column> --> - <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" show-overflow-tooltip></el-table-column> - <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip></el-table-column> - <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column> - <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column> - <el-table-column prop="manHour" label="宸ユ椂" width="80" show-overflow-tooltip></el-table-column> - <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column> - <el-table-column prop="deviceGroup" label="璁惧缁�" width="120" show-overflow-tooltip></el-table-column> - <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column> - <el-table-column prop="ask" label="瑕佹眰鍊�" width="220px"> - <template slot-scope="scope"> - <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable - @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" :autosize="{ minRows: 1, maxRows: 3}"></el-input> - <span v-else>{{scope.row.ask}}</span> - </template> - </el-table-column> - </el-table> - </el-row> - </div> - <el-dialog title="鍒嗙被娣诲姞" :visible.sync="addDia" width="400px"> - <div class="body"> - <el-row style="line-height: 50px;"> - <el-col :span="6" style="text-align: right;"> - <span class="required-span">* </span>宸ュ巶锛� - </el-col> - <el-col :span="16" :offset="1"> - <el-select v-model="addOb.factory" size="small" style="width: 100%;" clearable> - <el-option v-for="(a, ai) in factory" :key="ai" :value="a.value" :label="a.label"></el-option> - </el-select> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="6" style="text-align: right;"> - <span class="required-span">* </span>瀹為獙瀹わ細 - </el-col> - <el-col :span="16" :offset="1"> - <el-select v-model="addOb.laboratory" size="small" style="width: 100%;" clearable> - <el-option v-for="(a, ai) in laboratory" :key="ai" :value="a.value" :label="a.label"></el-option> - </el-select> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="6" style="text-align: right;"> - <span class="required-span">* </span>鏍峰搧澶х被锛� - </el-col> - <el-col :span="16" :offset="1"> - <el-select v-model="addOb.sampleType" size="small" style="width: 100%;" clearable> - <el-option v-for="(a, ai) in sampleType" :key="ai" :value="a.value" :label="a.label"></el-option> - </el-select> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="6" style="text-align: right;"> - <span class="required-span">* </span>鏍峰搧鍚嶇О锛� - </el-col> - <el-col :span="16" :offset="1"> - <el-input v-model="addOb.sample" placeholder="璇疯緭鍏ユ牱鍝佸悕绉�" clearable size="small"></el-input> - </el-col> - </el-row> - <el-row style="line-height: 50px;"> - <el-col :span="6" style="text-align: right;"> - 鍨嬪彿锛� - </el-col> - <el-col :span="16" :offset="1"> - <el-input v-model="addOb.model" placeholder="璇疯緭鍏ュ瀷鍙�" clearable size="small"></el-input> - </el-col> - </el-row> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="addDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="addStandardTree" :loading="addLoad">纭� 瀹�</el-button> - </span> - </el-dialog> - <el-dialog title="鏂板鏍囧噯" :visible.sync="addStandardDia" width="400px"> - <div class="body"> - <el-row style="line-height: 50px;"> - <el-col :span="6" style="text-align: right;"> - <span class="required-span">* </span>鏍囧噯鍚嶇О锛� - </el-col> - <el-col :span="16" :offset="1"> - <el-select v-model="standardId" size="small" style="width: 100%;" clearable> - <el-option v-for="(a, ai) in standardEnum" :key="ai" :value="a.value" :label="a.label"></el-option> - </el-select> - </el-col> - </el-row> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="addStandardDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="addStandardMethodList" :loading="addLoad2">纭� 瀹�</el-button> - </span> - </el-dialog> - <el-dialog title="鏂板椤圭洰" :visible.sync="addProductDia" width="70%"> - <div class="body" style="height: 60vh;" v-if="addProductDia"> - <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData"/> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="addProductDia = false">鍙� 娑�</el-button> - <el-button type="primary" @click="addStandardProductDo" :loading="addLoad3">纭� 瀹�</el-button> - </span> - </el-dialog> - </div> + </el-table-column> --> + </el-table> + </el-row> + <el-row class="product_table" v-loading="tableLoad2"> + <el-table :data="productList" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe + :fit="true" border @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" + @select="upProductSelect" @select-all="handleAll"> + <el-table-column type="selection" width="65"> + </el-table-column> + <el-table-column prop="model" label="鍨嬪彿" min-width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column> + <!-- <el-table-column prop="inspectionItemClassify" label="妫�楠岄」绫诲瀷" width="120" show-overflow-tooltip></el-table-column> --> + <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" + show-overflow-tooltip></el-table-column> + <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip :filters="filters" + :filter-method="filterHandler"></el-table-column> + <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="200px"> + <template slot-scope="scope"> + <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable + @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" + :autosize="{ minRows: 1, maxRows: 3}"></el-input> + <span v-else>{{scope.row.ask}}</span> + </template> + </el-table-column> + <el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"> + <template slot-scope="scope"> + <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable + @change="(value)=>upStandardProductListOfTell(value,scope.row.id)" v-if="upStandardProduct" + type="textarea" :autosize="{ minRows: 1, maxRows: 3}"></el-input> + <span v-else>{{scope.row.ask}}</span> + </template> + </el-table-column> + <el-table-column prop="method" label="璇曢獙鏂规硶" width="200"> + <template slot-scope="scope"> + <el-select v-model="scope.row.methodS" size="small" placeholder="璇曢獙鏂规硶" + @change="(value)=>upStandardProductListOfMethodS(value,scope.row.id)" v-if="upStandardProduct"> + <el-option v-for="(a,i) in JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option> + </el-select> + <span v-else>{{scope.row.methodS}}</span> + </template> + </el-table-column> + <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column> + <el-table-column prop="price" label="鍗曚环(鍏�)" width="120"> + <template slot-scope="scope"> + <el-input v-model="scope.row.price" size="small" placeholder="鍗曚环(鍏�)" + @change="(value)=>upStandardProductListOfPrice(value,scope.row.id)" v-if="upStandardProduct"> + </el-input> + <span v-else>{{scope.row.price}}</span> + </template> + </el-table-column> + <el-table-column prop="manHour" label="宸ユ椂绯绘暟" width="120"> + <template slot-scope="scope"> + <el-input v-model="scope.row.manHour" size="small" placeholder="鍗曚环(鍏�)" + @change="(value)=>upStandardProductListOfManHour(value,scope.row.id)" v-if="upStandardProduct"> + </el-input> + <span v-else>{{scope.row.manHour}}</span> + </template> + </el-table-column> + <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column> + <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column> + <el-table-column prop="section" label="鎿嶄綔" width="120"> + <template slot-scope="scope"> + <el-button type="text" @click="sectionUp(scope.row)">鍖洪棿璁剧疆</el-button> + </template> + </el-table-column> + </el-table> + </el-row> + </div> + <el-dialog title="鍒嗙被娣诲姞" :visible.sync="addDia" width="400px"> + <div class="body"> + <el-row style="line-height: 50px;"> + <el-col :span="6" style="text-align: right;">宸ュ巶锛�</el-col> + <el-col :span="16" :offset="1"> + <el-input size="small" readonly v-model="addOb.factory"></el-input> + </el-col> + </el-row> + <el-row style="line-height: 50px;"> + <el-col :span="6" style="text-align: right;">瀹為獙瀹わ細</el-col> + <el-col :span="16" :offset="1"> + <el-input size="small" readonly v-model="addOb.laboratory"></el-input> + </el-col> + </el-row> + <el-row style="line-height: 50px;"> + <el-col :span="6" style="text-align: right;">鏍峰搧澶х被锛�</el-col> + <el-col :span="16" :offset="1"> + <el-input size="small" readonly v-model="addOb.sampleType"></el-input> + </el-col> + </el-row> + <el-row style="line-height: 50px;"> + <el-col :span="6" style="text-align: right;">鏍峰搧鍚嶇О锛�</el-col> + <el-col :span="16" :offset="1"> + <el-input v-model="addOb.sample" readonly size="small"></el-input> + </el-col> + </el-row> + <el-row style="line-height: 50px;"> + <el-col :span="6" style="text-align: right;"> + <span class="required-span">* </span>鍨嬪彿锛� + </el-col> + <el-col :span="16" :offset="1"> + <el-input v-model="addOb.model" placeholder="璇疯緭鍏ュ瀷鍙�" clearable size="small"></el-input> + </el-col> + </el-row> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="addDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="addStandardTree" :loading="addLoad">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="鏂板鏍囧噯" :visible.sync="addStandardDia" width="400px"> + <div class="body"> + <el-row style="line-height: 50px;"> + <el-col :span="6" style="text-align: right;"> + <span class="required-span">* </span>鏍囧噯鍚嶇О锛� + </el-col> + <el-col :span="16" :offset="1"> + <el-select v-model="standardId" size="small" style="width: 100%;" clearable> + <el-option v-for="(a, ai) in standardEnum" :key="ai" :value="a.value" :label="a.label"></el-option> + </el-select> + </el-col> + </el-row> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="addStandardDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="addStandardMethodList" :loading="addLoad2">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="鏂板椤圭洰" :visible.sync="addProductDia" width="70%"> + <div class="body" style="height: 60vh;" v-if="addProductDia"> + <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData" /> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="addProductDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="addStandardProductDo" :loading="addLoad3">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="鍖洪棿璁剧疆" :visible.sync="sectionUpDia" width="70%"> + <div class="body" style="padding: 5px 0;"> + <el-table :data="sectionList" border style="width: 100%" height="350px"> + <el-table-column type="index" label="搴忓彿" width="70" align="center"> + </el-table-column> + <el-table-column label="鍖洪棿" align="center"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.thing" clearable placeholder="鍖洪棿"></el-input> + </template> + </el-table-column> + <el-table-column label="瑕佹眰鍊�" align="center"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.ask" clearable placeholder="瑕佹眰鍊�"></el-input> + </template> + </el-table-column> + <el-table-column label="瑕佹眰鎻忚堪" align="center"> + <template slot-scope="scope"> + <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable type="textarea" + :autosize="{ minRows: 1, maxRows: 2}"></el-input> + </template> + </el-table-column> + <el-table-column label="鍗曚环" align="center" width="120"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.price" clearable placeholder="鍗曚环"></el-input> + </template> + </el-table-column> + <el-table-column label="宸ユ椂绯绘暟" align="center" width="120"> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.manHour" clearable placeholder="宸ユ椂绯绘暟"></el-input> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" width="70" align="center"> + <template slot-scope="scope"> + <el-button size="mini" type="danger" icon="el-icon-minus" circle + @click="sectionList.splice(scope.$index, 1)"></el-button> + </template> + </el-table-column> + </el-table> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="sectionUpDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="sectionLoadAdd" :loading="sectionLoad">淇� 瀛�</el-button> + <el-button type="primary" @click="sectionList.push({thing: ''})" icon="el-icon-plus"></el-button> + </span> + </el-dialog> + </div> </template> <script> - import ValueTable from '../tool/value-table.vue' - export default { - components: { - ValueTable - }, - data() { - return { - search: null, - list: [], - selectTree: '', - factory: [], - addDia: false, - addOb: { - factory: null, - laboratory: null, - sampleType: null, - sample: null, - model: null - }, - laboratory: [], - addLoad: false, - sampleType: [], - sample: [], - treeLoad: false, - addPower: false, - standardList: [], - standardEnum: [], - addStandardDia: false, - standardId: null, - addStandardMethod: true, - addLoad2: false, - productList: [], - tableLoad: false, - upStandardProduct: false, - delStandardMethod: false, - selects: [], - delStandardProduct: false, - addProductDia: false, - productId: null, - addStandardProduct: false, - addLoad3: false, - productEnum: [], - componentData: { - entity: { - orderBy: { - field: 'id', - order: 'asc' - } - }, - isIndex: true, - showSelect: true, - select: true, - do: [], - tagField: { - inspectionItemType: { - select: [] - }, - valueType: { - select: [] - }, - bsm:{ - select: [] - }, - inspectionValueType:{ - select:[] - }, - deviceGroup:{select:[]} - }, - selectField: {}, - } - } - }, - mounted() { - this.getPower() - this.selectEnumByCategoryForFactory() - this.selectStandardTreeList() - this.obtainItemParameterList() - // this.selectEnumByCategoryForsampleType() - this.selectTestObjectByName() - this.selectStandardMethods() - this.selectEnumByCategoryForDevice() - this.selectEnumByCategory() - this.selectEnumByCategoryForValue() - this.selectEnumByCategoryForSpecial() - this.selectEnumByCategoryForInspectionValueType() - }, - methods: { - filterNode(value, data) { - if (!value) return true; - return data.label.indexOf(value) !== -1; - }, - searchFilter() { - this.$refs.tree.filter(this.search) - }, - refresh() { - this.upIndex++ - }, - handleNodeClick(val, node, el) { //鏍戠殑鍊� - this.selectTree = '' - this.getNodeParent(node) - this.selectTree = this.selectTree.replace(' - ', '') - let data = this.selectTree.split(' - ') - let data2 = '' - for (let index = data.length - 1; index >= 0; index--) { - data2 += " - " + data[index] - } - this.selectTree = data2.replace(' - ', '') - this.selectsStandardMethodByFLSSM() - let trees = this.selectTree.split(" - ") - this.addOb.factory = trees[0] - this.addOb.laboratory = trees[1] - this.addOb.sampleType = trees[2] - this.addOb.sample = trees[3] - }, - getNodeParent(val) { - if (val.parent != null) { - this.selectTree += ' - ' + val.label - this.getNodeParent(val.parent) - } - }, - remove(node, data) { - this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", { - type: "error" - }).then(()=> { - this.treeLoad = true - this.selectTree = '' - this.getNodeParent(node) - this.selectTree = this.selectTree.replace(' - ', '') - let data = this.selectTree.split(' - ') - let data2 = '' - for (let index = data.length - 1; index >= 0; index--) { - data2 += " - " + data[index] - } - this.selectTree = data2.replace(' - ', '') - this.$axios.post(this.$api.standardTree.delStandardTree, { - tree: this.selectTree - }).then(res => { - if(res.code==201)return - this.$message.success('宸插垹闄�') - this.selectStandardTreeList() - this.selectTree = '' - this.standardList = [] - this.productList = [] - }) - }).catch(e => {}) - }, - nodeOpen(data, node, el) { - $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') - }, - nodeClose(data, node, el) { - $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') - }, - selectEnumByCategoryForFactory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "宸ュ巶" - }).then(res => { - this.factory = res.data - }) - }, - selectEnumByCategoryForsampleType() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鏍峰搧澶х被" - }).then(res => { - this.sampleType = res.data - }) - }, - selectEnumByCategoryForDevice() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "璁惧鍒嗙被" - }).then(res => { - this.componentData.tagField.deviceGroup.select = res.data - }) - }, - selectEnumByCategory() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "妫�楠岄」绫诲瀷" - }).then(res => { - res.data[1].type = 'info' - this.componentData.tagField.inspectionItemType.select = res.data - }) - }, - selectEnumByCategoryForValue() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鍙栧�肩被鍨�" - }).then(res => { - this.componentData.tagField.valueType.select = res.data - }) - }, - selectEnumByCategoryForSpecial() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "鏄惁" - }).then(res => { - this.componentData.tagField.bsm.select = res.data - }) - }, - selectEnumByCategoryForInspectionValueType() { - this.$axios.post(this.$api.enums.selectEnumByCategory, { - category: "妫�楠屽�肩被鍨�" - }).then(res => { - this.componentData.tagField.inspectionValueType.select = res.data - }) - }, - selectStandardTreeList() { - this.treeLoad = true - this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => { - this.list = res.data - this.treeLoad = false - }) - }, - obtainItemParameterList() { - this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.laboratoryName, - value: a.laboratoryName - }) - }) - this.laboratory = data - }) - }, - selectTestObjectByName() { - this.$axios.get(this.$api.capacityScope.selectTestObjectByName).then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.specimenName, - value: a.specimenName - }) - }) - this.sampleType = data - }) - }, - selectStandardMethods() { - this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => { - let data = [] - res.data.forEach(a => { - data.push({ - label: a.name, - value: a.id - }) - }) - this.standardEnum = data - }) - }, - addStandardMethodList() { - if (this.standardId == null || this.standardId == '') { - this.$message.error('鏍囧噯鏂规硶鏈�夋嫨') - return - } - this.addLoad2 = true - this.$axios.post(this.$api.standardTree.addStandardMethodList, { - standardId: this.standardId, - tree: this.selectTree - }).then(res => { - this.addLoad2 = false - this.addStandardDia = false - this.$message.success('娣诲姞鎴愬姛') - this.selectsStandardMethodByFLSSM() - }) - }, - addStandardTree() { - if (this.addOb.factory == null || this.addOb.factory == '') { - this.$message.error('宸ュ巶鏄繀濉」') - return - } - if (this.addOb.laboratory == null || this.addOb.laboratory == '') { - this.$message.error('瀹為獙瀹ゆ槸蹇呭~椤�') - return - } - if (this.addOb.sampleType == null || this.addOb.sampleType == '') { - this.$message.error('鏍峰搧澶х被鏄繀濉」') - return - } - if (this.addOb.sample == null || this.addOb.sample == '') { - this.$message.error('鏍峰搧鏄繀濉」') - return - } - this.addLoad = true - this.$axios.post(this.$api.standardTree.addStandardTree, this.addOb, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - if (res.code === 201) { - this.addLoad = false - return - } - this.$message.success('娣诲姞鎴愬姛') - this.addDia = false - this.selectStandardTreeList() - this.addLoad = false - }).catch(e => { - this.addDia = false - this.addLoad = false - }) - }, - selectsStandardMethodByFLSSM() { - this.tableLoad = true - this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { - tree: this.selectTree - }).then(res => { - this.tableLoad = false - this.standardList = res.data.standardMethodList - this.productList = res.data.standardProductList - }) - }, - getPower() { - let power = JSON.parse(sessionStorage.getItem('power')) - let add = false - let addStandardMethod = false - let upStandardProduct = false - let delStandardMethod = false - let delStandardProduct = false - let addStandardProduct = false - let delStandardTree = false - for (var i = 0; i < power.length; i++) { - if (power[i].menuMethod == 'addStandardTree') { - add = true - } - if (power[i].menuMethod == 'addStandardMethodList') { - addStandardMethod = true - } - if (power[i].menuMethod == 'upStandardProductList') { - upStandardProduct = true - } - if (power[i].menuMethod == 'delStandardMethodByFLSSM') { - delStandardMethod = true - } - if (power[i].menuMethod == 'delStandardProductByIds') { - delStandardProduct = true - } - if (power[i].menuMethod == 'addStandardProduct') { - addStandardProduct = true - } - if (power[i].menuMethod == 'delStandardTree') { - delStandardTree = true - } - } - this.addPower = add - this.addStandardMethod = addStandardMethod - this.upStandardProduct = upStandardProduct - this.delStandardMethod = delStandardMethod - this.delStandardProduct = delStandardProduct - this.addStandardProduct = addStandardProduct - this.delStandardTree = delStandardTree - }, - upStandardProductList(value, index) { - this.$axios.post(this.$api.standardTree.upStandardProductList, { - id: index, - ask: value - }, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - if (res.code == 201) { - this.$message.error('鏈繚瀛�') - return - } - this.$message.success('宸蹭繚瀛�') - }) - }, - delStandardMethodByFLSSM(id) { - this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(() => { - this.tableLoad = true - this.$axios.post(this.$api.standardTree.delStandardMethodByFLSSM, { - id: id - }).then(res => { - if (res.code == 201) { - return - } - this.$message.success('宸插垹闄�') - this.selectsStandardMethodByFLSSM() - }) - }).catch(() => {}) - }, - handleSelectionChange(val) { - this.selects = [] - val.forEach(a => { - this.selects.push(a.id) - }) - }, - delStandardProductByIds() { - if(this.selects.length == 0){ - this.$message.error('鏈�変腑鏁版嵁') - return - } - this.$confirm('鏄惁鍒犻櫎褰撳墠閫変腑 '+this.selects.length+' 鏉℃暟鎹�?', "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }).then(() => { - this.tableLoad = true - this.$axios.post(this.$api.standardTree.delStandardProductByIds, { - ids: JSON.stringify(this.selects) - }).then(res => { - if (res.code == 201) { - return - } - this.$message.success('宸插垹闄�') - this.selectsStandardMethodByFLSSM() - }) - }).catch(() => {}) - }, - addStandardProductDo(){ - let selects = this.$refs.ValueTable.multipleSelection - if(selects.length == 0){ - this.$message.error('鏈�夋嫨鏁版嵁') - return - } - let select = [] - selects.forEach(a=>{ - select.push(a.id) - }) - this.tableLoad = true - this.$axios.post(this.$api.standardTree.addStandardProduct,{ - ids: JSON.stringify(select), - tree: this.selectTree - }).then(res=>{ - if (res.code == 201) { - return - } - this.$message.success('娣诲姞鎴愬姛') - this.selectsStandardMethodByFLSSM() - }) - this.addProductDia = false - } - } - } + import ValueTable from '../tool/value-table.vue' + export default { + components: { + ValueTable + }, + data() { + return { + search: null, + list: [], + selectTree: '', + factory: [], + addDia: false, + addOb: { + factory: null, + laboratory: null, + sampleType: null, + sample: null, + model: null + }, + laboratory: [], + addLoad: false, + sampleType: [], + sample: [], + treeLoad: false, + addPower: false, + standardList: [], + standardEnum: [], + addStandardDia: false, + standardId: null, + addStandardMethod: true, + addLoad2: false, + productList: [], + tableLoad: false, + tableLoad2: false, + upStandardProduct: false, + delStandardMethod: false, + selects: [], + delStandardProduct: false, + addProductDia: false, + productId: null, + addStandardProduct: false, + addLoad3: false, + productEnum: [], + componentData: { + entity: { + orderBy: { + field: 'id', + order: 'asc' + } + }, + isIndex: true, + showSelect: true, + select: true, + do: [], + tagField: { + inspectionItemType: { + select: [] + }, + valueType: { + select: [] + }, + bsm: { + select: [] + }, + inspectionValueType: { + select: [] + }, + deviceGroup: { + select: [] + } + }, + selectField: {}, + }, + expandedKeys: [], + filters: [], + sectionUpDia: false, + sectionLoad: false, + sectionRow: null, + sectionList: [] + } + }, + mounted() { + this.getPower() + this.selectEnumByCategoryForFactory() + this.selectStandardTreeList() + this.obtainItemParameterList() + // this.selectEnumByCategoryForsampleType() + this.selectTestObjectByName() + this.selectStandardMethods() + this.selectEnumByCategoryForDevice() + this.selectEnumByCategory() + this.selectEnumByCategoryForValue() + this.selectEnumByCategoryForSpecial() + this.selectEnumByCategoryForInspectionValueType() + this.selectEnumByCategoryForSonLaboratory() + }, + methods: { + filterNode(value, data) { + if (!value) return true; + return data.label.indexOf(value) !== -1; + }, + searchFilter() { + this.$refs.tree.filter(this.search) + }, + refresh() { + this.upIndex++ + }, + handleNodeClick(val, node, el) { //鏍戠殑鍊� + this.selectTree = '' + this.getNodeParent(node) + this.selectTree = this.selectTree.replace(' - ', '') + let data = this.selectTree.split(' - ') + let data2 = '' + for (let index = data.length - 1; index >= 0; index--) { + data2 += " - " + data[index] + } + this.selectTree = data2.replace(' - ', '') + this.selectsStandardMethodByFLSSM() + let trees = this.selectTree.split(" - ") + this.addOb.factory = trees[0] + this.addOb.laboratory = trees[1] + this.addOb.sampleType = trees[2] + this.addOb.sample = trees[3] + }, + getNodeParent(val) { + if (val.parent != null) { + this.selectTree += ' - ' + val.label + this.getNodeParent(val.parent) + } + }, + remove(node, data) { + this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", { + type: "error" + }).then(() => { + // this.treeLoad = true + this.selectTree = '' + this.getNodeParent(node) + this.selectTree = this.selectTree.replace(' - ', '') + let data = this.selectTree.split(' - ') + let data2 = '' + for (let index = data.length - 1; index >= 0; index--) { + data2 += " - " + data[index] + } + this.selectTree = data2.replace(' - ', '') + this.$axios.post(this.$api.standardTree.delStandardTree, { + tree: this.selectTree + }).then(res => { + if (res.code == 201) return + this.$message.success('宸插垹闄�') + let arr = this.selectTree.split(' - '); + this.deleteStandard(this.list, arr[arr.length - 1]) + // this.selectStandardTreeList() + this.selectTree = '' + this.standardList = [] + this.productList = [] + }) + }).catch(e => {}) + }, + deleteStandard(arr, label) { + arr.forEach((item, index) => { + if (item.label == label) { + arr.splice(index, 1); + } else { + item.children && this.deleteStandard(item.children, label); + } + }) + }, + nodeOpen(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened') + }, + nodeClose(data, node, el) { + $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder') + }, + selectEnumByCategoryForFactory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "宸ュ巶" + }).then(res => { + this.factory = res.data + }) + }, + selectEnumByCategoryForSonLaboratory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "瀛愬疄楠屽" + }).then(res => { + this.factory = [] + res.data.forEach(a => { + this.filters.push({ + text: a.label, + value: a.value + }) + }) + }) + }, + selectEnumByCategoryForsampleType() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鏍峰搧澶х被" + }).then(res => { + this.sampleType = res.data + }) + }, + selectEnumByCategoryForDevice() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "璁惧鍒嗙被" + }).then(res => { + this.componentData.tagField.deviceGroup.select = res.data + }) + }, + selectEnumByCategory() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠岄」绫诲瀷" + }).then(res => { + res.data[1].type = 'info' + this.componentData.tagField.inspectionItemType.select = res.data + }) + }, + selectEnumByCategoryForValue() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鍙栧�肩被鍨�" + }).then(res => { + this.componentData.tagField.valueType.select = res.data + }) + }, + selectEnumByCategoryForSpecial() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "鏄惁" + }).then(res => { + this.componentData.tagField.bsm.select = res.data + }) + }, + selectEnumByCategoryForInspectionValueType() { + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: "妫�楠屽�肩被鍨�" + }).then(res => { + this.componentData.tagField.inspectionValueType.select = res.data + }) + }, + selectStandardTreeList() { + this.treeLoad = true + this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => { + this.list = res.data + this.list.forEach(a => { + this.expandedKeys.push(a.label) + }) + this.treeLoad = false + }) + }, + obtainItemParameterList() { + this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.laboratoryName, + value: a.laboratoryName + }) + }) + this.laboratory = data + }) + }, + selectTestObjectByName() { + this.$axios.get(this.$api.capacityScope.selectTestObjectByName).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.specimenName, + value: a.specimenName + }) + }) + this.sampleType = data + }) + }, + selectStandardMethods() { + this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => { + let data = [] + res.data.forEach(a => { + data.push({ + label: a.name, + value: a.id + }) + }) + this.standardEnum = data + }) + }, + addStandardMethodList() { + if (this.standardId == null || this.standardId == '') { + this.$message.error('鏍囧噯鏂规硶鏈�夋嫨') + return + } + this.addLoad2 = true + this.$axios.post(this.$api.standardTree.addStandardMethodList, { + standardId: this.standardId, + tree: this.selectTree + }).then(res => { + this.addLoad2 = false + this.addStandardDia = false + this.$message.success('娣诲姞鎴愬姛') + this.selectsStandardMethodByFLSSM() + }) + }, + addStandardTree() { + if (this.addOb.sample == null || this.addOb.sample == '') { + this.$message.error('浜у搧涓嶅瓨鍦�') + return + } + if (this.addOb.model == null || this.addOb.model == '') { + this.$message.error('璇峰~鍐欏瀷鍙�') + return + } + this.addLoad = true + this.$axios.post(this.$api.standardTree.addStandardTree, this.addOb, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code === 201) { + this.addLoad = false + return + } + this.$message.success('娣诲姞鎴愬姛') + this.addDia = false + this.list + .find(a => a.label == this.addOb.factory).children + .find(a => a.label == this.addOb.laboratory).children + .find(a => a.label == this.addOb.sampleType).children + .find(a => a.label == this.addOb.sample).children.push({ + code: '[5]', + label: this.addOb.model, + value: this.addOb.model, + }) + this.addLoad = false + }).catch(e => { + this.addDia = false + this.addLoad = false + }) + }, + selectsStandardMethodByFLSSM() { + this.tableLoad = true + this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, { + tree: this.selectTree + }).then(res => { + this.tableLoad = false + this.standardList = res.data.standardMethodList + if (this.standardList && this.standardList.length > 0) { + this.$refs.standard.setCurrentRow(this.standardList[0]) + this.rowClick(this.standardList[0]) + } else { + this.productList = []; + } + }) + }, + getPower() { + let power = JSON.parse(sessionStorage.getItem('power')) + let add = false + let addStandardMethod = false + let upStandardProduct = false + let delStandardMethod = false + let delStandardProduct = false + let addStandardProduct = false + let delStandardTree = false + for (var i = 0; i < power.length; i++) { + if (power[i].menuMethod == 'addStandardTree') { + add = true + } + if (power[i].menuMethod == 'addStandardMethodList') { + addStandardMethod = true + } + if (power[i].menuMethod == 'upStandardProductList') { + upStandardProduct = true + } + if (power[i].menuMethod == 'delStandardMethodByFLSSM') { + delStandardMethod = true + } + if (power[i].menuMethod == 'delStandardProductByIds') { + delStandardProduct = true + } + if (power[i].menuMethod == 'addStandardProduct') { + addStandardProduct = true + } + if (power[i].menuMethod == 'delStandardTree') { + delStandardTree = true + } + } + this.addPower = add + this.addStandardMethod = addStandardMethod + this.upStandardProduct = upStandardProduct + this.delStandardMethod = delStandardMethod + this.delStandardProduct = delStandardProduct + this.addStandardProduct = addStandardProduct + this.delStandardTree = delStandardTree + }, + upStandardProductList(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + ask: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + }) + }, + upStandardProductListOfTell(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + tell: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + }) + }, + upStandardProductListOfMethodS(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + methodS: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + // this.$message.success('宸蹭繚瀛�') + }) + }, + upStandardProductListOfPrice(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + price: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + // this.$message.success('宸蹭繚瀛�') + }) + }, + upStandardProductListOfManHour(value, index) { + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: index, + manHour: value + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + // this.$message.success('宸蹭繚瀛�') + }) + }, + delStandardMethodByFLSSM(id) { + this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.tableLoad = true + this.$axios.post(this.$api.standardTree.delStandardMethodByFLSSM, { + id: id + }).then(res => { + if (res.code == 201) { + return + } + this.$message.success('宸插垹闄�') + this.selectsStandardMethodByFLSSM() + }) + }).catch(() => {}) + }, + handleSelectionChange(val) { + this.selects = [] + val.forEach(a => { + this.selects.push(a.id) + }) + }, + delStandardProductByIds() { + if (this.selects.length == 0) { + this.$message.error('鏈�変腑鏁版嵁') + return + } + this.$confirm('鏄惁鍒犻櫎褰撳墠閫変腑 ' + this.selects.length + ' 鏉℃暟鎹�?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.tableLoad = true + this.$axios.post(this.$api.standardTree.delStandardProductByIds, { + ids: JSON.stringify(this.selects) + }).then(res => { + if (res.code == 201) { + return + } + this.$message.success('宸插垹闄�') + this.selectsStandardMethodByFLSSM() + }) + }).catch(() => {}) + }, + addStandardProductDo() { + let selects = this.$refs.ValueTable.multipleSelection + if (selects.length == 0) { + this.$message.error('鏈�夋嫨鏁版嵁') + return + } + let select = [] + selects.forEach(a => { + select.push(a.id) + }) + this.tableLoad = true + this.$axios.post(this.$api.standardTree.addStandardProduct, { + ids: JSON.stringify(select), + tree: this.selectTree + }).then(res => { + if (res.code == 201) { + return + } + this.$message.success('娣诲姞鎴愬姛') + this.selectsStandardMethodByFLSSM() + }) + this.addProductDia = false + }, + rowClick(row, column, event) { + this.tableLoad2 = true + this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, { + id: row.id, + tree: this.selectTree + }).then(res => { + this.productList = res.data + setTimeout(() => { + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }, 300) + this.tableLoad2 = false + }) + }, + toggleSelection(row) { + this.$refs.productTable.toggleRowSelection(row, true); + }, + tableRowClassName({ + row, + rowIndex + }) { + if (row.state === 0) { + return 'warning-row'; + } + return ''; + }, + upProductSelect(selection, row) { + row.state = row.state == 1 ? 0 : 1 + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: row.id, + state: row.state + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + // this.$message.success('宸蹭繚瀛�') + }) + }, + filterHandler(value, row, column) { + const property = column['property']; + return row[property] === value; + }, + handleAll(e) { + if (e.length > 0) { + this.productList.map(m => { + this.upProductSelect(null, m) + return m + }) + } else { + this.productList.map(m => { + this.upProductSelect(null, m) + return m + }) + } + }, + sectionUp(row) { + this.sectionRow = row + this.sectionUpDia = true + this.sectionList = [] + if (this.sectionRow.section != null && this.sectionRow.section != '') { + JSON.parse(this.sectionRow.section).forEach((a, ai) => { + this.sectionList.push({ + thing: a, + ask: JSON.parse(this.sectionRow.ask)[ai], + tell: JSON.parse(this.sectionRow.tell)[ai], + price: JSON.parse(this.sectionRow.price)[ai], + manHour: JSON.parse(this.sectionRow.manHour)[ai] + }) + }) + } + }, + sectionLoadAdd() { + let sectionList = [] + let askList = [] + let tellList = [] + let priceList = [] + let manHourList = [] + this.sectionList.forEach(a => { + if (a.thing !== '') { + sectionList.push(a.thing) + askList.push(a.ask) + tellList.push(a.tell) + priceList.push(a.price) + manHourList.push(a.manHour) + } + }) + if (sectionList.length === 0) { + this.sectionRow.section = null + this.sectionRow.ask = null + this.sectionRow.tell = null + this.sectionRow.price = null + this.sectionRow.manHour = null + } else { + this.sectionRow.section = JSON.stringify(sectionList) + this.sectionRow.ask = JSON.stringify(askList) + this.sectionRow.tell = JSON.stringify(tellList) + this.sectionRow.price = JSON.stringify(priceList) + this.sectionRow.manHour = JSON.stringify(manHourList) + } + this.sectionLoad = true + this.$axios.post(this.$api.standardTree.upStandardProductList, { + id: this.sectionRow.id, + section: this.sectionRow.section, + ask: this.sectionRow.ask, + tell: this.sectionRow.tell, + price: this.sectionRow.price, + manHour: this.sectionRow.manHour + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + this.sectionLoad = false + if (res.code == 201) { + this.$message.error('鏈繚瀛�') + return + } + this.$message.success('宸蹭繚瀛�') + this.sectionUpDia = false + }) + } + } + } </script> -- Gitblit v1.9.3