| | |
| | | opacity: 1; |
| | | } |
| | | |
| | | .custom-tree-node .el-icon-edit { |
| | | color: #3a7bfa; |
| | | opacity: 0; |
| | | font-size: 18px; |
| | | } |
| | | |
| | | .custom-tree-node:hover .el-icon-edit { |
| | | opacity: 1; |
| | | } |
| | | |
| | | .node_i { |
| | | color: orange; |
| | | font-size: 18px; |
| | |
| | | background: rgba(0, 0, 0, 0.05) !important; |
| | | } |
| | | |
| | | >>>.is-disabled .el-textarea__inner { |
| | | background: rgba(0, 0, 0, 0.05) !important; |
| | | } |
| | | |
| | | >>>.el-table__body-wrapper::-webkit-scrollbar { |
| | | height: 14px; |
| | | /* 设置æ»å¨æ¡å®½åº¦ */ |
| | |
| | | <div class="left"> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-input v-model="search" clearable placeholder="è¾å
¥å
³é®åè¿è¡æç´¢" size="small" style="margin-bottom: 5px" |
| | | suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter"></el-input> |
| | | <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 v-if="checkPermi(['standard:standardLibrary:add'])" :span="4" |
| | | style="text-align: center; line-height: 30px"> |
| | | <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button> |
| | | <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 ref="tree" v-loading="treeLoad" :data="list" :default-expanded-keys="expandedKeys" |
| | | :filter-node-method="filterNode" :props="{ children: 'children', label: 'label' }" highlight-current |
| | | node-key="label" style=" |
| | | <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label" |
| | | :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current v-loading="treeLoad" |
| | | :expand-on-click-node="false" :default-expanded-keys="expandedKeys" style=" |
| | | height: calc(100% - 30px); |
| | | overflow-y: scroll; |
| | | scrollbar-width: none; |
| | | " @node-click="handleNodeClick"> |
| | | <div slot-scope="{ node, data }" class="custom-tree-node"> |
| | | "> |
| | | <div class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <el-row style="width: 100%"> |
| | | <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left"> |
| | | <el-col :span="21" :class="{ sort: node.level > 3 }" :title="data.label" style="text-align: left"> |
| | | <span> |
| | | <i :class="`node_i ${data.children != undefined |
| | | ? data.code === '[1]' |
| | |
| | | {{ data.label }} |
| | | </span> |
| | | </el-col> |
| | | <el-col v-if=" |
| | | checkPermi(['standard:standardLibrary:delStandardTree']) && |
| | | <el-col :span="2" style="text-align: right" v-if=" |
| | | (node.data.children === null || |
| | | node.data.children === undefined) |
| | | " :span="2" style="text-align: right"> |
| | | <el-button size="mini" type="text" @click.stop="editTreeName(node.data)"> |
| | | <i class="el-icon-edit"></i> |
| | | </el-button> |
| | | </el-col> |
| | | <el-col v-if=" |
| | | checkPermi(['standard:standardLibrary:delStandardTree']) && |
| | | (node.data.children === null || |
| | | node.data.children === undefined) |
| | | " :span="2" style="text-align: right"> |
| | | <el-button size="mini" type="text" @click.stop="remove(node, data)"> |
| | | "> |
| | | <el-button type="text" size="mini" @click.stop="remove(node, data)"> |
| | | <i class="el-icon-delete"></i> |
| | | </el-button> |
| | | </el-col> |
| | |
| | | </div> |
| | | <div class="right"> |
| | | <el-row class="title" style="width: 100%"> |
| | | <el-col :span="24" style="font-size: 14px; color: #999">{{ |
| | | <el-col :span="20" style="font-size: 14px; color: #999">{{ |
| | | selectTree |
| | | }}</el-col> |
| | | <el-button size="small" type="primary" style="position: absolute; right: 100px; top: 1px" |
| | | @click="uploadDia = true" v-if="inExcelOfTreePower">导å
¥</el-button> |
| | | <el-button size="small" type="primary" @click="handleMore" style="position: absolute; right: 5px; top: 1px" |
| | | v-if="upStandardProduct">æ¹éç¼è¾</el-button> |
| | | </el-row> |
| | | <el-row v-loading="tableLoad" class="standard_table"> |
| | | <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220" |
| | | highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark" |
| | | @row-click="rowClick"> |
| | | <el-table-column label="æ åç¼å·" prop="code" show-overflow-tooltip width="200"> |
| | | <el-row class="standard_table" v-loading="tableLoad"> |
| | | <el-table class="el-table" :data="standardList" style="width: 100%; height: 220px !important" height="220" |
| | | tooltip-effect="dark" highlight-current-row @row-click="rowClick" ref="standard" |
| | | header-row-class-name="header-class"> |
| | | <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 label="æ ååç§°" prop="name" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="夿³¨" prop="remark" show-overflow-tooltip></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> |
| | | </el-row> |
| | | <el-row v-loading="tableLoad2" class="product_table"> |
| | | <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList" |
| | | :fit="true" :row-class-name="tableRowClassName" border class="productTable" |
| | | header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%" |
| | | tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange" |
| | | @select-all="handleAll"> |
| | | <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" class="productTable" header-row-class-name="header-class"> |
| | | <el-table-column type="selection" width="50"> </el-table-column> |
| | | <el-table-column label="产å" min-width="100" prop="sample" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="åå·" min-width="100" prop="model" show-overflow-tooltip></el-table-column> |
| | | <!-- <el-table-column label="æ£éªé¡¹åç±»" min-width="140" prop="inspectionItemClass" |
| | | show-overflow-tooltip></el-table-column> --> |
| | | <el-table-column label="æ£éªé¡¹" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="æ£éªé¡¹å项" min-width="140" prop="inspectionItemSubclass" |
| | | <el-table-column prop="sample" label="产å" min-width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="model" label="åå·" min-width="100" 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 label="åå®éªå®¤" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column> |
| | | <el-table-column label="è¦æ±å¼" min-width="200px" prop="ask"> |
| | | <el-table-column prop="sonLaboratory" label="åå®éªå®¤" width="130" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="ask" label="è¦æ±å¼" min-width="200px"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-if=" |
| | | checkPermi(['standard:standardLibrary:upStandardProduct']) |
| | | " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="è¦æ±å¼" size="small" |
| | | type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input> |
| | | <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 label="è¦æ±æè¿°" min-width="220px" prop="tell"> |
| | | <el-table-column prop="tell" label="è¦æ±æè¿°" min-width="220px"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-if=" |
| | | checkPermi(['standard:standardLibrary:upStandardProduct']) |
| | | " v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="è¦æ±æè¿°" |
| | | size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id) |
| | | "></el-input> |
| | | <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 label="è¯éªæ¹æ³" prop="method" width="200"> |
| | | <el-table-column prop="method" label="è¯éªæ¹æ³" width="200"> |
| | | <template slot-scope="scope"> |
| | | <el-select v-if=" |
| | | checkPermi(['standard:standardLibrary:upStandardProduct']) |
| | | " v-model="scope.row.methodS" clearable placeholder="è¯éªæ¹æ³" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id) |
| | | "> |
| | | <el-option v-for="(a, i) in scope.row.method && |
| | | JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option> |
| | | <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 label="æ¡ä»¶" min-width="140" prop="radius" show-overflow-tooltip> |
| | | <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-select v-if=" |
| | | checkPermi(['standard:standardLibrary:upStandardProduct']) |
| | | " v-model="scope.row.radius" clearable placeholder="æ¡ä»¶" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id) |
| | | "> |
| | | <el-option v-for="(a, i) in scope.row.radiusList && |
| | | JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option> |
| | | </el-select> |
| | | <span v-else>{{ scope.row.radius }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="计éåä½" prop="unit" show-overflow-tooltip width="100"></el-table-column> |
| | | <el-table-column label="åä»·(å
)" prop="price" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-if=" |
| | | checkPermi(['standard:standardLibrary:upStandardProduct']) |
| | | " v-model="scope.row.price" placeholder="åä»·(å
)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id) |
| | | "> |
| | | <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 label="å·¥æ¶ç³»æ°" prop="manHour" width="120"> |
| | | <el-table-column prop="manHour" label="å·¥æ¶ç³»æ°" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-if=" |
| | | checkPermi(['standard:standardLibrary:upStandardProduct']) |
| | | " v-model="scope.row.manHour" placeholder="åä»·(å
)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id) |
| | | "> |
| | | <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 label="å·¥æ¶åç»" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column> |
| | | <el-table-column label="模æ¿" prop="templateId" width="200"> |
| | | <el-table-column prop="manHourGroup" label="å·¥æ¶åç»" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="templateId" label="模æ¿" width="200"> |
| | | <template slot-scope="scope"> |
| | | <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) |
| | | " filterable size="small" @change="(value) => |
| | | upStandardProductListOfTemplate(value, scope.row.id) |
| | | "> |
| | | <el-select v-model="scope.row.templateId" size="small" filterable :disabled="!upStandardProduct" @change="(value) => |
| | | upStandardProductListOfTemplate(value, scope.row.id) |
| | | "> |
| | | <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="åºé´" prop="section" show-overflow-tooltip width="160"></el-table-column> |
| | | <el-table-column label="æä½" prop="section" width="120"> |
| | | <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)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct']) |
| | | ">åºé´è®¾ç½®</el-button> |
| | | <el-button type="text" @click="sectionUp(scope.row)">åºé´è®¾ç½®</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total" |
| | | style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange"> |
| | | <el-pagination style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange" |
| | | :current-page="currentPage" layout="total, prev, pager, next, jumper" :page-size="50" :total="total"> |
| | | </el-pagination> |
| | | <!-- <p style="text-align: right;margin-right: 20px;color: #333;">å
±{{ total }}æ¡</p> --> |
| | | </el-row> |
| | | </div> |
| | | |
| | | <el-dialog :visible.sync="addDia" title="å类添å " width="400px"> |
| | | <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 :offset="1" :span="16"> |
| | | <el-input v-model="addOb.model" clearable placeholder="请è¾å
¥åå·" size="small" |
| | | <el-col :span="16" :offset="1"> |
| | | <el-input v-model="addOb.model" placeholder="请è¾å
¥åå·" clearable size="small" |
| | | @keyup.enter.native="addStandardTree"></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addDia = false">å æ¶</el-button> |
| | | <el-button :loading="addLoad" type="primary" @click="addStandardTree">ç¡® å®</el-button> |
| | | <el-button type="primary" @click="addStandardTree" :loading="addLoad">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="updateDia" title="å类修æ¹" 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 :offset="1" :span="16"> |
| | | <el-input v-model="addOb.model" clearable placeholder="请è¾å
¥åå·" size="small" |
| | | @keyup.enter.native="updateStandardTree"></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-dialog title="æ¹éç¼è¾" top="5vh" :visible.sync="moreEdit" width="90%" class="more-edit"> |
| | | <div class="body" style="display: flex; flex-direction: column; height: 85vh"> |
| | | <div class="search"> |
| | | <div class="search-item"> |
| | | <el-row style="width: 25%; margin-bottom: 16px"> |
| | | <el-col :span="6" style="text-align: right"> |
| | | <!-- <span class="required-span">* </span> --> |
| | | è¦æ±å¼ï¼</el-col> |
| | | <el-col :span="16"> |
| | | <el-input size="small" v-model="moreInfo.ask" clearable :disabled="moreSelects.length == 0"></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width: 25%; margin-bottom: 16px"> |
| | | <el-col :span="6" style="text-align: right"> |
| | | <!-- <span class="required-span">* </span> --> |
| | | è¦æ±æè¿°ï¼</el-col> |
| | | <el-col :span="16" style="display: flex; align-items: flex-start; height: 100%"> |
| | | <el-input size="small" clearable type="textarea" :autosize="{ minRows: 1, maxRows: 3 }" |
| | | v-model="moreInfo.tell" :disabled="moreSelects.length == 0"></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width: 25%; margin-bottom: 16px"> |
| | | <el-col :span="6" style="text-align: right"> |
| | | <!-- <span class="required-span">* </span> --> |
| | | è¯éªæ¹æ³ï¼</el-col> |
| | | <el-col :span="16"> |
| | | <el-select v-model="moreInfo.methodS" size="small" filterable style="width: 100%" |
| | | :disabled="moreSelects.length == 0" clearable> |
| | | <el-option v-for="(a, ai) in methodList" :key="ai" :label="a.label" :value="a.value"></el-option> |
| | | </el-select> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width: 25%; margin-bottom: 16px"> |
| | | <el-col :span="6" style="text-align: right"> |
| | | <!-- <span class="required-span">* </span> --> |
| | | åä»·(å
)ï¼</el-col> |
| | | <el-col :span="16"> |
| | | <el-input size="small" v-model="moreInfo.price" clearable |
| | | :disabled="moreSelects.length == 0"></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width: 25%"> |
| | | <el-col :span="6" style="text-align: right"> |
| | | <!-- <span class="required-span">* </span> --> |
| | | å·¥æ¶ç³»æ°ï¼</el-col> |
| | | <el-col :span="16"> |
| | | <el-input size="small" v-model="moreInfo.manHour" clearable |
| | | :disabled="moreSelects.length == 0"></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width: 25%"> |
| | | <el-col :span="6" style="text-align: right"> |
| | | <!-- <span class="required-span">* </span> --> |
| | | 模æ¿ï¼</el-col> |
| | | <el-col :span="16"> |
| | | <el-select v-model="moreInfo.templateId" size="small" filterable placeholder="模æ¿" style="width: 100%" |
| | | :disabled="moreSelects.length == 0"> |
| | | <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option> |
| | | </el-select> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width: 25%"> |
| | | <el-col :span="6" style="text-align: right"> æ¯å¦å¯ç¨ï¼</el-col> |
| | | <el-col :span="16"> |
| | | <el-select v-model="moreInfo.state" size="small" filterable placeholder="æ¯å¦å¯ç¨" style="width: 100%" |
| | | :disabled="moreSelects.length == 0" clearable> |
| | | <el-option label="å¯ç¨" :value="1"></el-option> |
| | | <el-option label="ä¸å¯ç¨" :value="0"></el-option> |
| | | </el-select> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width: 100%; margin-top: 8px"> |
| | | <el-col :span="24" style="display: flex; align-items: center; justify-content: end"> |
| | | <el-button @click="clearProduct(1)" size="small" type="danger">éç½®åä»·</el-button> |
| | | <el-button @click="clearProduct(2)" size="small" type="danger">é置工æ¶ç³»æ°</el-button> |
| | | <el-button type="primary" size="small" @click="sectionUp(moreSelects)">设置åºé´</el-button> |
| | | <el-button @click="moreEdit = false" size="small">å æ¶</el-button> |
| | | <el-button type="primary" @click="subMoreEdit" :loading="moreEditLoad" size="small">ä¿ å</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | <div style="flex: 1; overflow-y: auto" v-loading="productTableLoading0"> |
| | | <el-table :data="productList0" ref="productTable0" style="width: 100%" height="96%" tooltip-effect="dark" |
| | | stripe :fit="true" border @select-all="handleSelectAll0" @select="handleSelectionChange0" |
| | | header-row-class-name="header-class" :row-key="(row) => row.id" @filter-change="filterHandler" |
| | | highlight-current-row> |
| | | <el-table-column type="selection" width="50"> </el-table-column> |
| | | <el-table-column prop="sample" label="产å" min-width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="model" label="åå·" min-width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹" min-width="140" show-overflow-tooltip :filters="filters0" |
| | | :filter-multiple="false" column-key="inspectionItem" filter-placement="bottom-start"></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªé¡¹å项" min-width="140" show-overflow-tooltip |
| | | :filters="filters1" :filter-multiple="false" column-key="inspectionItemSubclass" |
| | | filter-placement="bottom-start"></el-table-column> |
| | | <el-table-column prop="sonLaboratory" label="åå®éªå®¤" width="130" show-overflow-tooltip |
| | | :filters="dict.type.sys_sub_lab" :filter-multiple="false" column-key="sonLaboratory" |
| | | filter-placement="bottom-start"></el-table-column> |
| | | <el-table-column prop="ask" label="è¦æ±å¼" min-width="200px"></el-table-column> |
| | | <el-table-column prop="tell" label="è¦æ±æè¿°" min-width="220px"></el-table-column> |
| | | <el-table-column prop="methodS" label="è¯éªæ¹æ³" width="200"></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"></el-table-column> |
| | | <el-table-column prop="manHour" label="å·¥æ¶ç³»æ°" width="120"></el-table-column> |
| | | <el-table-column prop="manHourGroup" label="å·¥æ¶åç»" width="100" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="templateId" label="模æ¿" width="200"> |
| | | <template slot-scope="scope"> |
| | | {{ |
| | | templateList.find((item) => item.id == scope.row.templateId) |
| | | ? templateList.find( |
| | | (item) => item.id == scope.row.templateId |
| | | ).name |
| | | : "" |
| | | }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="section" label="åºé´" width="120" show-overflow-tooltip></el-table-column> |
| | | </el-table> |
| | | <el-pagination style="position: absolute; right: 16px; bottom: 4px" @current-change="handleCurrentChange0" |
| | | :current-page="currentPage0" layout="total, prev, pager, next, jumper" :page-size="100" :total="total0"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="updateDia = false">å æ¶</el-button> |
| | | <el-button :loading="updateLoad" type="primary" @click="updateStandardTree">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :close-on-click-modal="false" :visible.sync="sectionUpDia" title="åºé´è®¾ç½®" width="80%"> |
| | | <el-dialog title="åºé´è®¾ç½®" :visible.sync="sectionUpDia" width="70%" :close-on-click-modal="false"> |
| | | <div style="width: 100%; text-align: left"> |
| | | <el-button id="copyBtn" v-if="sectionList.length > 0" :data-clipboard-text="JSON.stringify(sectionList)" |
| | | type="primary" size="mini" @click="copySectionConfig">å¤å¶åºé´è®¾ç½®</el-button> |
| | | <el-button type="primary" size="mini" @click="openImportSectionsConfig">导å
¥åºé´è®¾ç½®</el-button> |
| | | <el-dialog :visible.sync="importSectionsConfigDia" width="30%" title="导å
¥åºé´é
ç½®"> |
| | | <el-input type="textarea" :rows="3" v-model="sectionsConfigText"></el-input> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="importSectionsConfigDia = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="confirmImportConfig">确认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | <div class="body" style="padding: 5px 0"> |
| | | <el-table :data="sectionList" border height="350px" style="width: 100%"> |
| | | <el-table-column align="center" label="åºå·" type="index" width="70"> |
| | | <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 align="center" label="åºé´"> |
| | | <el-table-column label="åºé´" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.thing" clearable placeholder="åºé´" size="small"></el-input> |
| | | <el-input size="small" v-model="scope.row.thing" clearable placeholder="åºé´"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="è¯æ°"> |
| | | <el-table-column label="è¦æ±å¼" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.cores" clearable placeholder="è¯æ°" size="small"></el-input> |
| | | <el-input size="small" v-model="scope.row.ask" clearable placeholder="è¦æ±å¼"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="è¦æ±å¼"> |
| | | <el-table-column label="è¦æ±æè¿°" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.ask" clearable placeholder="è¦æ±å¼" size="small"></el-input> |
| | | <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 align="center" label="è¦æ±æè¿°"> |
| | | <el-table-column label="åä»·" align="center" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 2 }" clearable placeholder="è¦æ±æè¿°" |
| | | size="small" type="textarea"></el-input> |
| | | <el-input size="small" v-model="scope.row.price" clearable placeholder="åä»·"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column align="center" label="å¯¼ä½æè´¨"> |
| | | <el-table-column label="å·¥æ¶ç³»æ°" align="center" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.conductorMaterial" clearable placeholder="å¯¼ä½æè´¨" size="small"></el-input> |
| | | </template> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column align="center" label="导ä½ç±»å"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.conductorType" clearable placeholder="导ä½ç±»å" size="small"></el-input> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column align="center" label="åä»·" width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.price" clearable placeholder="åä»·" size="small"></el-input> |
| | | <el-input size="small" v-model="scope.row.manHour" clearable placeholder="å·¥æ¶ç³»æ°"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="å·¥æ¶ç³»æ°" width="120"> |
| | | <el-table-column label="æä½" width="70" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.manHour" clearable placeholder="å·¥æ¶ç³»æ°" size="small"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="æä½" width="70"> |
| | | <template slot-scope="scope"> |
| | | <el-button circle icon="el-icon-minus" size="mini" type="danger" |
| | | <el-button size="mini" type="danger" icon="el-icon-minus" circle |
| | | @click="sectionList.splice(scope.$index, 1)"></el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="sectionUpDia = false">å æ¶</el-button> |
| | | <el-button :loading="sectionLoad" type="primary" @click="sectionLoadAdd">ä¿ å</el-button> |
| | | <el-button icon="el-icon-plus" type="primary" @click="sectionList.push({ thing: '' })"></el-button> |
| | | <el-button type="primary" @click="sectionLoadAdd" :loading="sectionLoad">ä¿ å</el-button> |
| | | <el-button type="primary" @click=" |
| | | sectionList.push({ |
| | | thing: '', |
| | | price: sectionRow.price, |
| | | manHour: sectionRow.manHour, |
| | | }) |
| | | " icon="el-icon-plus"></el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="æ°æ®å¯¼å
¥" :visible.sync="uploadDia" width="500px"> |
| | | <div style="margin: 0 auto"> |
| | | <el-upload ref="upload" drag :action="javaApi + '/standardTree/inExcelOfTree' + '/' + 'false' |
| | | " :headers="uploadHeader" :file-list="fileList" name="file" :auto-upload="false" accept=".xlsx" :limit="1" |
| | | :on-change="beforeUpload" :on-success="onSuccess" :on-error="onError"> |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">å°æä»¶æå°æ¤å¤ï¼æ<em>ç¹å»ä¸ä¼ </em></div> |
| | | </el-upload> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="uploadDia = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitUpload()" :loading="uploading">ä¸ ä¼ </el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Sortable from "sortablejs"; |
| | | import draggable from "vuedraggable"; |
| | | import Clipboard from "../../../../public/js/clipboard.min.js"; |
| | | import { |
| | | updateTreeSort, |
| | | resetTreeDragBatch, |
| | | delStandardTree, |
| | | selectStandardTreeList, |
| | | obtainItemParameterList, |
| | | selectTestObjectByName, |
| | | selectStandardMethods, |
| | | addStandardMethodList, |
| | | addStandardTree, |
| | | updateStandardTree, |
| | | selectsStandardMethodByFLSSM, |
| | | upStandardProductList, |
| | | delStandardMethodByFLSSM, |
| | | delStandardProductByIds, |
| | | selectStandardProductListByMethodId, |
| | | updateSection, |
| | | upStandardProducts, |
| | | getStandardTemplate, |
| | | selectStandardProductByMethodId, |
| | | selectStandardProductEnumByMethodId, |
| | | } from "@/api/standard/standardLibrary"; |
| | | resetTreeOfPrice, |
| | | resetTreeOfHour, |
| | | selectsStandardMethodByFLSSM, |
| | | } from '@/api/standard/standardLibrary.js' |
| | | |
| | | export default { |
| | | name: 'StandardLibrary', |
| | | components: { |
| | | draggable, |
| | | }, |
| | | dicts: ["sys_factory", "sys_sub_lab", "sys_samp_type"], |
| | | dicts: ['sys_sub_lab'], |
| | | data() { |
| | | return { |
| | | tableKey: "productList", |
| | | importSectionsConfigDia: false, |
| | | sectionsConfigText: "", //导å
¥çåºé´é
ç½®ææ¬ |
| | | search: null, |
| | | list: [], |
| | | selectTree: "", |
| | | factory: [], |
| | | // factory: [], |
| | | addDia: false, |
| | | updateDia: false, // ä¿®æ¹æ ååå¼¹æ¡ |
| | | oldModel: "", |
| | | addOb: { |
| | | factory: null, |
| | | laboratory: null, |
| | |
| | | }, |
| | | laboratory: [], |
| | | addLoad: false, |
| | | updateLoad: false, |
| | | sampleType: [], |
| | | // sampleType: [], |
| | | sample: [], |
| | | treeLoad: false, |
| | | addPower: false, |
| | | addPower: true, |
| | | standardList: [], |
| | | standardEnum: [], |
| | | addStandardDia: false, |
| | | standardId: null, |
| | | addStandardMethod: true, |
| | | addLoad2: false, |
| | | productList: [], |
| | | productTableLoading: false, |
| | | tableLoad: false, |
| | | tableLoad2: false, |
| | | upStandardProduct: false, |
| | | delStandardMethod: false, |
| | | selects: [], |
| | | delStandardProduct: false, |
| | | addProductDia: false, |
| | | productId: null, |
| | | addStandardProduct: false, |
| | | addLoad3: false, |
| | | productEnum: [], |
| | | expandedKeys: [], |
| | | filters: [], |
| | | // filters: [], |
| | | sectionUpDia: false, |
| | | sectionLoad: false, |
| | | sectionRow: null, |
| | |
| | | total: 0, |
| | | currentPage: 1, |
| | | standardId: 0, |
| | | moreEdit: false, |
| | | moreEditLoad: false, |
| | | moreSelects: [], |
| | | total0: 0, |
| | | currentPage0: 1, |
| | | productList0: [], |
| | | moreInfo: { |
| | | ask: "", |
| | | tell: "", |
| | | methodS: "", |
| | | price: "", |
| | | manHour: "", |
| | | templateId: "", |
| | | state: null, |
| | | }, |
| | | methodList: [], |
| | | productTableLoading0: false, |
| | | filters0: [], |
| | |
| | | inspectionItem: null, |
| | | inspectionItemSubclass: null, |
| | | sonLaboratory: null, |
| | | token: null, |
| | | uploadDia: false, |
| | | fileList: [], |
| | | inExcelOfTreePower: true, |
| | | uploading: false, |
| | | isEquipment: true, |
| | | isHaveChildren: {}, |
| | | sortTable: null, |
| | | isShowCopy: false, |
| | | VUE_APP_BASE_API: process.env.VUE_APP_BASE_API, |
| | | moreSelects: [], |
| | | isEquipment: false, |
| | | }; |
| | | }, |
| | | watch: { |
| | | moreEdit(val) { |
| | | if (!val) { |
| | | this.$refs.productTable0.clearSelection(); |
| | | this.moreSelects = []; |
| | | this.currentPage0 = 1; |
| | | this.productList0 = []; |
| | | this.moreInfo = { |
| | | ask: "", |
| | | tell: "", |
| | | methodS: "", |
| | | price: "", |
| | | manHour: "", |
| | | templateId: "", |
| | | }; |
| | | } |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.selectEnumByCategoryForFactory(); |
| | | // this.getPower(); |
| | | // this.selectEnumByCategoryForFactory(); |
| | | this.selectStandardTreeList(); |
| | | this.obtainItemParameterList(); |
| | | // this.selectEnumByCategoryForsampleType() |
| | | this.selectTestObjectByName(); |
| | | this.selectStandardMethods(); |
| | | this.selectEnumByCategoryForSonLaboratory(); |
| | | this.selectEnumByCategoryForsampleType(); |
| | | // this.selectEnumByCategoryForDevice(); |
| | | // this.selectEnumByCategory(); |
| | | // this.selectEnumByCategoryForValue(); |
| | | // this.selectEnumByCategoryForSpecial(); |
| | | // this.selectEnumByCategoryForInspectionValueType(); |
| | | // this.selectEnumByCategoryForSonLaboratory(); |
| | | this.getStandardTemplate(); |
| | | this.selectStandardMethodsSec(); |
| | | this.token = { |
| | | token: sessionStorage.getItem("token"), |
| | | }; |
| | | this.selectStandardMethods(); |
| | | }, |
| | | methods: { |
| | | // ä¿®æ¹æå级åå |
| | | editTreeName(info) { |
| | | this.updateDia = true; |
| | | this.oldModel = info.label; |
| | | }, |
| | | // ææ½æ¶å¤å®ç®æ èç¹è½å¦è¢«æ¾ç½® |
| | | // 'prev'ã'inner' å 'next'ï¼åãæå
¥ãå |
| | | allowDrop(draggingNode, dropNode, type) { |
| | | if (draggingNode.level !== 3) return; |
| | | if (draggingNode.data.level === dropNode.data.level) { |
| | | if (draggingNode.data.parentId === dropNode.data.parentId) { |
| | | return type === "prev" || type === "next"; |
| | | } else { |
| | | return false; |
| | | } |
| | | } else { |
| | | // ä¸å级è¿è¡å¤ç |
| | | return false; |
| | | } |
| | | }, |
| | | // treeææ½æå宿æ¶è§¦åçäºä»¶ |
| | | handleDrop(draggingNode, dropNode, dropType, ev) { |
| | | try { |
| | | this.treeLoad = true; |
| | | updateTreeSort(this.list).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | confirmImportConfig() { }, |
| | | openImportSectionsConfig() { |
| | | // this.importSectionsConfigDia = true |
| | | this.$confirm("确认导å
¥å¤å¶çåºé´é
ç½®?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | if ( |
| | | this.sectionsConfigText == null || |
| | | this.sectionsConfigText == "" || |
| | | this.sectionsConfigText == undefined |
| | | ) { |
| | | this.$message.error("æªè¯å«å°åªåæ¿çææææ¬"); |
| | | return; |
| | | } else { |
| | | let parseConfig = JSON.parse(this.sectionsConfigText); |
| | | if (!Array.isArray(parseConfig)) { |
| | | this.$message.error("éè¯¯çæ°æ®æ ¼å¼"); |
| | | return; |
| | | } |
| | | parseConfig.forEach((ele) => { |
| | | this.sectionList.push(ele); |
| | | }); |
| | | this.$message.success("导å
¥æå"); |
| | | } |
| | | this.treeLoad = false; |
| | | }); |
| | | } catch (e) { |
| | | this.treeLoad = false; |
| | | console.log("e----", e); |
| | | } |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | rowDrop(methodId) { |
| | | const that = this; |
| | | const tbody = document.querySelector( |
| | | "#templateParamTable .el-table__body-wrapper tbody" |
| | | ); |
| | | if (!this.sortTable) { |
| | | this.sortTable = Sortable.create(tbody, { |
| | | animation: 200, //å¨ç»æ¶é¿ |
| | | handle: ".el-table__row", //坿æ½åºåclass |
| | | //ææ½ä¸äºä»¶ |
| | | onMove: ({ dragged, related }) => { |
| | | const oldRow = that.productList[dragged.rowIndex]; //æ§ä½ç½®æ°æ® |
| | | const newRow = that.productList[related.rowIndex]; //è¢«ææ½çæ°æ°æ® |
| | | }, |
| | | //ææ½ç»æäºä»¶ |
| | | onEnd: (evt) => { |
| | | const curRow = that.productList.splice(evt.oldIndex, 1)[0]; // å½åè¢«ææ½çä¿¡æ¯ |
| | | that.productList.splice(evt.newIndex, 0, curRow); |
| | | let arr = []; |
| | | this.productList.forEach((item, index) => { |
| | | const obj = Object.assign({ |
| | | sort: index, |
| | | id: item.id, |
| | | }); |
| | | arr.push(obj); |
| | | }); |
| | | this.productTableLoading = true; |
| | | // ææ½å®æåä¼ ç»å端ä¿åæ°æ® |
| | | resetTreeDragBatch({ params: arr }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("ä¿åæå"); |
| | | } |
| | | this.productTableLoading = false; |
| | | }); |
| | | }, |
| | | }); |
| | | } |
| | | //å¤å¶åºé´é
ç½® |
| | | copySectionConfig() { |
| | | // å建 clipboard å®ä¾,è·åæé®å
ç´ |
| | | let clipboard = new Clipboard("#copyBtn"); |
| | | /* æ³¨ææ¤äºä»¶ç嬿¯å¼æ¥ç */ |
| | | clipboard.on("success", (e) => { |
| | | this.sectionsConfigText = e.text; |
| | | e.clearSelection(); |
| | | // éæ¾å
å |
| | | clipboard.destroy(); |
| | | // å¤å¶æåæç¤º |
| | | this.$message.success("å·²å¤å¶å°åªè´´æ¿"); |
| | | }); |
| | | // å¤å¶å¤±è´¥ |
| | | clipboard.on("error", (e) => { |
| | | // éæ¾å
å |
| | | clipboard.destroy(); |
| | | // å¤å¶å¤±è´¥æç¤º |
| | | this.$message.error("å¤å¶å¤±è´¥"); |
| | | }); |
| | | }, |
| | | hasChildWithId(nodes, name) { |
| | | for (let node of nodes) { |
| | | const comName = node.label + node.code; |
| | | if (comName == name) { |
| | | //夿éå½ç»ææ¡ä»¶ |
| | | this.isHaveChildren = node; |
| | | return node; |
| | | } else if (node.children && node.children.length > 0) { |
| | | //夿childrenæ¯å¦ææ°æ® |
| | | this.hasChildWithId(node.children, name); //éå½è°ç¨ |
| | | } |
| | | } |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | // è°ç¨treeè¿æ»¤æ¹æ³ 䏿è±è¿æ»¤ |
| | | filterNode(value, data, node) { |
| | | if (!value) {ãããã//å¦ææ°æ®ä¸ºç©ºï¼åè¿åtrue,æ¾ç¤ºææçæ°æ®é¡¹ |
| | | return true |
| | | } |
| | | // æ¥è¯¢å表æ¯å¦æå¹é
æ°æ®ï¼å°å¼å°åï¼å¹é
è±ææ°æ® |
| | | let val = value.toLowerCase() |
| | | return this.chooseNode(val, data, node) // è°ç¨è¿æ»¤äºå±æ¹æ³ |
| | | }, |
| | | // è¿æ»¤ç¶èç¹ / åèç¹ (妿è¾å
¥çåæ°æ¯ç¶èç¹ä¸è½å¹é
ï¼åè¿å该èç¹ä»¥åå
¶ä¸çææåèç¹ï¼å¦æåæ°æ¯åèç¹ï¼åè¿å该èç¹çç¶èç¹ãnameæ¯ä¸æå符ï¼enNameæ¯è±æå符. |
| | | chooseNode(value, data, node) { |
| | | if (data.label.indexOf(value) !== -1) { |
| | | return true |
| | | } |
| | | const level = node.level |
| | | // å¦æä¼ å
¥çèç¹æ¬èº«å°±æ¯ä¸çº§èç¹å°±ä¸ç¨æ ¡éªäº |
| | | if (level === 1) { |
| | | return false |
| | | } |
| | | // å
åå½åèç¹çç¶èç¹ |
| | | let parentData = node.parent |
| | | // éåå½åèç¹çç¶èç¹ |
| | | let index = 0 |
| | | while (index < level - 1) { |
| | | // 妿å¹é
å°ç´æ¥è¿åï¼æ¤å¤name弿¯ä¸æå符ï¼enNameæ¯è±æå符ã夿å¹é
ä¸è±æè¿æ»¤ |
| | | if (parentData.data.label.indexOf(value) !== -1) { |
| | | return true |
| | | } |
| | | // å¦åçè¯åå¾ä¸ä¸å±åå¹é
|
| | | parentData = parentData.parent |
| | | index++ |
| | | } |
| | | // 没å¹é
å°è¿åfalse |
| | | return false |
| | | }, |
| | | |
| | | searchFilter() { |
| | | this.$refs.tree.filter(this.search); |
| | | }, |
| | |
| | | }, |
| | | handleNodeClick(val, node, el) { |
| | | //æ çå¼ |
| | | if (node.childNodes.length === 0) { |
| | | this.isShowCopy = true; |
| | | } else { |
| | | this.isShowCopy = false; |
| | | } |
| | | this.total = 0; |
| | | this.currentPage = 1; |
| | | this.selectTree = ""; |
| | |
| | | data2 += " - " + data[index]; |
| | | } |
| | | this.selectTree = data2.replace(" - ", ""); |
| | | if (node.childNodes.length === 0) { |
| | | this.selectsStandardMethodByFLSSM(); |
| | | } |
| | | this.selectsStandardMethodByFLSSM(); |
| | | let trees = this.selectTree.split(" - "); |
| | | this.addOb.factory = trees[0]; |
| | | this.addOb.laboratory = trees[1]; |
| | |
| | | data2 += " - " + data[index]; |
| | | } |
| | | this.selectTree = data2.replace(" - ", ""); |
| | | delStandardTree({ tree: this.selectTree }).then((res) => { |
| | | delStandardTree({ tree: this.selectTre }).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 = []; |
| | |
| | | } |
| | | }); |
| | | }, |
| | | selectEnumByCategoryForFactory() { |
| | | this.getConfigKey("sys_factory").then((response) => { |
| | | this.factory = response.msg; |
| | | }); |
| | | }, |
| | | selectEnumByCategoryForSonLaboratory() { |
| | | let arr = []; |
| | | this.getConfigKey("sys_sub_lab").then((response) => { |
| | | arr = response.msg; |
| | | }); |
| | | arr.forEach((a) => { |
| | | this.filters.push({ |
| | | text: a.label, |
| | | value: a.value, |
| | | }); |
| | | }); |
| | | }, |
| | | selectEnumByCategoryForsampleType() { |
| | | this.getConfigKey("sys_samp_type").then((response) => { |
| | | this.sampleType = response.msg; |
| | | }); |
| | | }, |
| | | // 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; |
| | | selectStandardTreeList().then((res) => { |
| | |
| | | this.standardEnum = data; |
| | | }); |
| | | }, |
| | | // æäº¤å类添å |
| | | addStandardMethodList() { |
| | | if (this.standardId == null || this.standardId == "") { |
| | | this.$message.error("æ åæ¹æ³æªéæ©"); |
| | | return; |
| | | } |
| | | this.addLoad2 = true; |
| | | addStandardMethodList({ |
| | | standardId: this.standardId, |
| | | tree: this.selectTree, |
| | | }).then((res) => { |
| | | this.addLoad2 = false; |
| | | this.addStandardDia = false; |
| | | this.$message.success("æ·»å æå"); |
| | | this.selectsStandardMethodByFLSSM(); |
| | | }); |
| | | }, |
| | | addStandardTree() { |
| | | if (this.addOb.sampleType == null || this.addOb.sampleType == "") { |
| | | this.$message.error("对象ä¸åå¨"); |
| | |
| | | return; |
| | | } |
| | | this.addLoad = true; |
| | | addStandardTree(this.addOb) |
| | | .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, |
| | | }); |
| | | addStandardTree(this.addOb).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; |
| | | this.$tab.refreshPage(); |
| | | |
| | | }) |
| | | .catch((e) => { |
| | | this.addDia = false; |
| | | this.addLoad = false; |
| | | }); |
| | | }, |
| | | // ä¿®æ¹åå· |
| | | updateStandardTree() { |
| | | if (this.addOb.sampleType == null || this.addOb.sampleType == "") { |
| | | this.$message.error("对象ä¸åå¨"); |
| | | return; |
| | | } |
| | | if (this.addOb.model == null || this.addOb.model == "") { |
| | | this.$message.error("请填ååå·"); |
| | | return; |
| | | } |
| | | this.addOb.oldModel = this.oldModel; |
| | | this.updateLoad = true; |
| | | updateStandardTree(this.addOb) |
| | | .then((res) => { |
| | | if (res.code === 201) { |
| | | this.updateLoad = false; |
| | | return; |
| | | } |
| | | this.$message.success("æ·»å æå"); |
| | | this.$tab.refreshPage(); |
| | | // this.selectStandardTreeList(); |
| | | this.updateDia = false; |
| | | this.updateLoad = false; |
| | | }) |
| | | .catch((e) => { |
| | | this.updateDia = false; |
| | | this.updateLoad = false; |
| | | }); |
| | | }, |
| | | selectsStandardMethodByFLSSM() { |
| | | this.tableLoad = true; |
| | | 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 = []; |
| | | }) |
| | | .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; |
| | | let inExcelOfTreePower = 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; |
| | | } |
| | | if (power[i].menuMethod == "inExcelOfTree") { |
| | | inExcelOfTreePower = true; |
| | | } |
| | | } |
| | | this.addPower = add; |
| | | this.addStandardMethod = addStandardMethod; |
| | | this.upStandardProduct = upStandardProduct; |
| | | this.delStandardMethod = delStandardMethod; |
| | | this.delStandardProduct = delStandardProduct; |
| | | this.addStandardProduct = addStandardProduct; |
| | | this.delStandardTree = delStandardTree; |
| | | this.inExcelOfTreePower = inExcelOfTreePower; |
| | | }, |
| | | upStandardProductList(value, index) { |
| | | upStandardProductList({ |
| | |
| | | id: index, |
| | | tell: value, |
| | | }), |
| | | }).then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | }); |
| | | }) |
| | | .then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | }); |
| | | }, |
| | | // æ ååºéæ©å®éªæ¹æ³çåè° |
| | | upStandardProductListOfMethodS(value, index) { |
| | | upStandardProductList({ |
| | | str: JSON.stringify({ |
| | | id: index, |
| | | methodS: value, |
| | | }), |
| | | }).then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | }); |
| | | }, |
| | | // æ ååºéæ©æ¡ä»¶çåè° |
| | | upStandardProductListOfRadius(value, index) { |
| | | upStandardProductList({ |
| | | str: JSON.stringify({ |
| | | id: index, |
| | | radius: value, |
| | | }), |
| | | }).then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | }); |
| | | }) |
| | | .then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | // this.$message.success('å·²ä¿å') |
| | | }); |
| | | }, |
| | | upStandardProductListOfPrice(value, index) { |
| | | upStandardProductList({ |
| | |
| | | id: index, |
| | | price: value, |
| | | }), |
| | | }).then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | }); |
| | | }) |
| | | .then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | // this.$message.success('å·²ä¿å') |
| | | }); |
| | | }, |
| | | upStandardProductListOfManHour(value, index) { |
| | | upStandardProductList({ |
| | |
| | | id: index, |
| | | manHour: value, |
| | | }), |
| | | }).then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | }); |
| | | }) |
| | | .then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | // this.$message.success('å·²ä¿å') |
| | | }); |
| | | }, |
| | | upStandardProductListOfTemplate(value, index) { |
| | | upStandardProductList({ |
| | |
| | | id: index, |
| | | templateId: value, |
| | | }), |
| | | }).then((res) => { |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | }); |
| | | }) |
| | | .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; |
| | | delStandardMethodByFLSSM({ id: id, }).then((res) => { |
| | | if (res.code == 201) { |
| | | return; |
| | | } |
| | | this.$message.success("å·²å é¤"); |
| | | this.selectsStandardMethodByFLSSM(); |
| | | }); |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | handleSelectionChange(val) { |
| | | this.selects = []; |
| | |
| | | this.selects.push(a.id); |
| | | }); |
| | | }, |
| | | |
| | | refreshList() { |
| | | const index = this.standardList.findIndex( |
| | | (item) => item.id == this.standardId |
| | | ); |
| | | if (index > -1) { |
| | | this.rowClick(this.standardList[index]); |
| | | delStandardProductByIds() { |
| | | if (this.selects.length == 0) { |
| | | this.$message.error("æªé䏿°æ®"); |
| | | return; |
| | | } |
| | | this.$confirm( |
| | | "æ¯å¦å é¤å½åéä¸ " + this.selects.length + " æ¡æ°æ®?", |
| | | "è¦å", |
| | | { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | } |
| | | ) |
| | | .then(() => { |
| | | this.tableLoad = true; |
| | | 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.currentPage = 1; |
| | | this.tableLoad2 = true; |
| | |
| | | }); |
| | | }, 300); |
| | | this.tableLoad2 = false; |
| | | // const tree = this.selectTree.split(" - "); |
| | | // // éæ©æåä¸å±æ æå¯ä»¥ææ½æåº |
| | | // if (tree.length === 4) { |
| | | // const name = tree[3] + "[4]"; |
| | | // this.hasChildWithId(this.list, name); |
| | | // if ( |
| | | // this.isHaveChildren.children && |
| | | // this.isHaveChildren.children.length > 0 |
| | | // ) { |
| | | // if (this.sortTable) { |
| | | // this.sortTable.destroy(); |
| | | // this.sortTable = null; |
| | | // } |
| | | // return; |
| | | // } |
| | | // } else if (tree.length < 4) { |
| | | // if (this.sortTable) { |
| | | // this.sortTable.destroy(); |
| | | // this.sortTable = null; |
| | | // } |
| | | // return; |
| | | // } |
| | | // this.$nextTick(() => { |
| | | // this.rowDrop(row.id); |
| | | // }); |
| | | }); |
| | | }, |
| | | toggleSelection(row) { |
| | |
| | | }); |
| | | } |
| | | }, |
| | | // 设置åºé´ |
| | | sectionUp(row) { |
| | | if (Array.isArray(row)) { |
| | | // 弿¯ä¸ä¸ªæ°ç» |
| | |
| | | this.sectionList = []; |
| | | if (this.sectionRow.section != null && this.sectionRow.section != "") { |
| | | JSON.parse(this.sectionRow.section).forEach((a, ai) => { |
| | | if (this.sectionRow.cores !== null) { |
| | | 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], |
| | | // cores: JSON.parse(this.sectionRow.cores)[ai], |
| | | // conductorMaterial: |
| | | // this.sectionRow.conductorMaterial && |
| | | // JSON.parse(this.sectionRow.conductorMaterial)[ai], |
| | | // conductorType: |
| | | // this.sectionRow.conductorType && |
| | | // JSON.parse(this.sectionRow.conductorType)[ai], |
| | | }); |
| | | } else { |
| | | 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], |
| | | // conductorMaterial: |
| | | // this.sectionRow.conductorMaterial && |
| | | // JSON.parse(this.sectionRow.conductorMaterial)[ai], |
| | | // conductorType: |
| | | // this.sectionRow.conductorType && |
| | | // JSON.parse(this.sectionRow.conductorType)[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 = []; |
| | | // let coresList = []; |
| | | // let conductorMaterialList = []; |
| | | // let conductorTypeList = []; |
| | | 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) |
| | | // coresList.push(a.cores); |
| | | // conductorMaterialList.push(a.conductorMaterial); |
| | | // conductorTypeList.push(a.conductorType); |
| | | 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 |
| | | // this.sectionRow.cores = null; |
| | | // this.sectionRow.conductorMaterial = null; |
| | | // this.sectionRow.conductorType = 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.sectionRow.cores = JSON.stringify(coresList); |
| | | // this.sectionRow.conductorMaterial = JSON.stringify( |
| | | // conductorMaterialList |
| | | // ); |
| | | // this.sectionRow.conductorType = JSON.stringify(conductorTypeList); |
| | | this.sectionRow.price = JSON.stringify(priceList); |
| | | this.sectionRow.manHour = JSON.stringify(manHourList); |
| | | } |
| | | this.sectionLoad = true; |
| | | if (this.moreSelects.length === 0) { |
| | | updateSection({ |
| | | upStandardProductList({ |
| | | str: JSON.stringify({ |
| | | id: this.sectionRow.id, |
| | | section: this.sectionRow.section, |
| | |
| | | tell: this.sectionRow.tell, |
| | | price: this.sectionRow.price, |
| | | manHour: this.sectionRow.manHour, |
| | | // cores: this.sectionRow.cores, |
| | | // conductorMaterial: this.sectionRow.conductorMaterial, |
| | | // conductorType: this.sectionRow.conductorType, |
| | | }), |
| | | }).then((res) => { |
| | | this.sectionLoad = false; |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | this.sectionUpDia = false; |
| | | }); |
| | | }) |
| | | .then((res) => { |
| | | this.sectionLoad = false; |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | this.sectionUpDia = false; |
| | | }); |
| | | } else { |
| | | upStandardProducts({ |
| | | ids: JSON.stringify(this.moreSelects.map((a) => a.id)), |
| | |
| | | tell: this.sectionRow.tell, |
| | | price: this.sectionRow.price, |
| | | manHour: this.sectionRow.manHour, |
| | | // cores: this.sectionRow.cores, |
| | | // conductorMaterial: this.sectionRow.conductorMaterial, |
| | | // conductorType: this.sectionRow.conductorType, |
| | | }, |
| | | }).then((res) => { |
| | | this.sectionLoad = false; |
| | |
| | | this.tableLoad2 = false; |
| | | }); |
| | | }, |
| | | selectStandardMethodsSec() { |
| | | async handleMore() { |
| | | if ( |
| | | (!this.standardId && this.standardId != 0) || |
| | | this.standardList.length == 0 |
| | | ) { |
| | | return this.$message.error("è¯·éæ©å®éªå®¤ãæ ·å"); |
| | | } |
| | | await this.getList(); |
| | | this.moreEdit = true; |
| | | }, |
| | | selectStandardMethods() { |
| | | selectStandardMethods().then((res) => { |
| | | let data = []; |
| | | res.data.forEach((a) => { |
| | |
| | | }); |
| | | }); |
| | | this.methodList = data; |
| | | }); |
| | | }, |
| | | subMoreEdit() { |
| | | if (this.moreSelects.length === 0) { |
| | | return this.$message.error("è¯·éæ©æ£éªé¡¹"); |
| | | } |
| | | this.moreEditLoad = true; |
| | | for (let a in this.moreInfo) { |
| | | if (this.moreInfo[a] == "") { |
| | | delete this.moreInfo[a]; |
| | | } |
| | | } |
| | | upStandardProducts({ |
| | | ids: JSON.stringify(this.moreSelects.map((a) => a.id)), |
| | | standardProductList: this.moreInfo, |
| | | },).then((res) => { |
| | | this.moreEditLoad = false; |
| | | if (res.code == 201) { |
| | | this.$message.error("æªä¿å"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²ä¿å"); |
| | | this.currentPage0 = 1; |
| | | this.getList(); |
| | | this.rowClick({ |
| | | id: this.standardId, |
| | | }); |
| | | // this.moreInfo = { |
| | | // ask:'', |
| | | // tell:'', |
| | | // methodS:'', |
| | | // price:'', |
| | | // manHour:'', |
| | | // templateId:'' |
| | | // } |
| | | }); |
| | | }, |
| | | handleSelectAll0(rows) { |
| | |
| | | laboratory: this.sonLaboratory, |
| | | items: this.inspectionItemSubclass, |
| | | item: this.inspectionItem, |
| | | }).then((res) => { |
| | | this.productList0 = res.data.records; |
| | | this.total0 = res.data.total; |
| | | this.productTableLoading0 = false; |
| | | this.page = res.data.pages; |
| | | this.$nextTick(() => { |
| | | this.productList0.forEach((a, i) => { |
| | | if (this.moreSelects.find((b) => a.id == b.id)) { |
| | | this.$refs.productTable0.toggleRowSelection( |
| | | this.productList0[i], |
| | | true |
| | | ); |
| | | } |
| | | }) |
| | | .then((res) => { |
| | | this.productList0 = res.data.records; |
| | | this.total0 = res.data.total; |
| | | this.productTableLoading0 = false; |
| | | this.page = res.data.pages; |
| | | this.$nextTick(() => { |
| | | this.productList0.forEach((a, i) => { |
| | | if (this.moreSelects.find((b) => a.id == b.id)) { |
| | | this.$refs.productTable0.toggleRowSelection( |
| | | this.productList0[i], |
| | | true |
| | | ); |
| | | } |
| | | }); |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | handleCurrentChange0(e) { |
| | | this.currentPage0 = e; |
| | |
| | | id: this.standardId, |
| | | tree: this.selectTree, |
| | | item: this.inspectionItem, |
| | | }).then((res) => { |
| | | this.filters0 = []; |
| | | this.filters1 = []; |
| | | res.data.item.forEach((a) => { |
| | | this.filters0.push({ |
| | | text: a.inspectionItem, |
| | | value: a.inspectionItem, |
| | | }) |
| | | .then((res) => { |
| | | this.filters0 = []; |
| | | this.filters1 = []; |
| | | res.data.item.forEach((a) => { |
| | | this.filters0.push({ |
| | | text: a.inspectionItem, |
| | | value: a.inspectionItem, |
| | | }); |
| | | }); |
| | | res.data.items.forEach((a) => { |
| | | if (a != null) { |
| | | this.filters1.push({ |
| | | text: a.inspectionItemSubclass, |
| | | value: a.inspectionItemSubclass, |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | res.data.items.forEach((a) => { |
| | | if (a != null) { |
| | | this.filters1.push({ |
| | | text: a.inspectionItemSubclass, |
| | | value: a.inspectionItemSubclass, |
| | | }, |
| | | beforeUpload(file, fileList) { |
| | | if ( |
| | | file.raw.type != |
| | | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" |
| | | ) { |
| | | this.$message.error("ä¸ä¼ æä»¶æ ¼å¼ä¸æ£ç¡®"); |
| | | this.$refs.upload.clearFiles(); |
| | | return false; |
| | | } |
| | | }, |
| | | submitUpload() { |
| | | if (this.$refs.upload.uploadFiles.length == 0) { |
| | | this.$message.error("æªéæ©æä»¶"); |
| | | return; |
| | | } |
| | | this.uploading = true; |
| | | this.$refs.upload.submit(); |
| | | }, |
| | | onSuccess(response, file, fileList) { |
| | | this.$refs.upload.clearFiles(); |
| | | this.uploadDia = false; |
| | | this.uploading = false; |
| | | if (response.code == 201) { |
| | | this.$message.error(response.message); |
| | | return; |
| | | } |
| | | this.$message.success("ä¸ä¼ æå"); |
| | | this.standardList = []; |
| | | this.productList = []; |
| | | this.selectStandardTreeList(); |
| | | }, |
| | | onError(err, file, fileList) { |
| | | this.$message.error("ä¸ä¼ 失败"); |
| | | this.$refs.upload.clearFiles(); |
| | | this.uploading = false; |
| | | }, |
| | | clearProduct(type) { |
| | | this.$confirm("æ¯å¦æ¸
空?", "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | if (type === 1) { |
| | | resetTreeOfPrice({ |
| | | tree: this.selectTree, |
| | | standardId: this.standardId, |
| | | }).then((res) => { |
| | | if (res.code == 201) { |
| | | return; |
| | | } |
| | | this.$message.success("å·²æ¸
空"); |
| | | this.currentPage0 = 1; |
| | | this.getList(); |
| | | this.rowClick({ |
| | | id: this.standardId, |
| | | }); |
| | | }); |
| | | } else if (type === 2) { |
| | | resetTreeOfHour({ |
| | | tree: this.selectTree, |
| | | standardId: this.standardId, |
| | | }) |
| | | .then((res) => { |
| | | if (res.code == 201) { |
| | | return; |
| | | } |
| | | this.$message.success("å·²æ¸
空"); |
| | | this.currentPage0 = 1; |
| | | this.getList(); |
| | | this.rowClick({ |
| | | id: this.standardId, |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | }, |
| | | }; |