| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <style scoped> |
| | | .search { |
| | | background-color: #fff; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_thing { |
| | | width: 350px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 110px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 110px); |
| | | } |
| | | |
| | | .table { |
| | | margin-top: 10px; |
| | | background-color: #fff; |
| | | width: calc(100% - 40px); |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="standard_method"> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">æ åç¼å·ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.code" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">æ ååç§°ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.name" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px"> |
| | | <el-button size="small" @click="refresh()">é ç½®</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">æ¥ è¯¢</el-button> |
| | | </div> |
| | | <div class="btn"> |
| | | <!-- <el-button size="small" @click="$refs.ValueTable.openUpload()" v-if="inPower"> |
| | | <i class="el-icon-upload2" style="color: #3a7bfa"></i> |
| | | <span style="color: #3a7bfa">导å
¥</span></el-button> --> |
| | | <el-button size="small" type="primary" @click="openAdd" v-if="addPower">æ°å¢</el-button> |
| | | </div> |
| | | </div> |
| | | <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" |
| | | :height="'calc(100vh - 250px)'" style="padding: 20px; padding-top: 0" @pagination="pagination"></lims-table> |
| | | <!-- æ°å¢/ç¼è¾ --> |
| | | <el-dialog :title="title" :visible.sync="addDlog" width="500px"> |
| | | <el-form :model="addForm" ref="addForm" :rules="addRules" label-position="right" label-width="120px"> |
| | | <el-form-item label="é¢å" prop="field"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="addForm.field"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ åç¼å·" prop="code"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="addForm.code"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£éªå¯¹è±¡" prop="structureTestObjectId"> |
| | | <el-cascader size="small" :options="tandardTree" v-model="addForm.structureTestObjectId" collapse-tags |
| | | :props="{ multiple: true, checkStrictly: true }" clearable style="width: 100%"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="æ åæè¿°" prop="name"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="addForm.name"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ åæè¿°EN" prop="nameEn"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="addForm.nameEn"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="addForm.remark"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="èµè´¨" prop="qualificationId"> |
| | | <el-select v-model="addForm.qualificationId" size="small" clearable placeholder="è¯·éæ©" style="width: 100%"> |
| | | <el-option v-for="item in qualificationList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦äº§åæ å" prop="isProduct"> |
| | | <el-select v-model="addForm.isProduct" size="small" clearable placeholder="è¯·éæ©" style="width: 100%"> |
| | | <el-option label="å¦" :value="0"> </el-option> |
| | | <el-option label="æ¯" :value="1"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å¯ç¨" prop="isUse"> |
| | | <el-select v-model="addForm.isUse" size="small" clearable placeholder="è¯·éæ©" style="width: 100%"> |
| | | <el-option label="å¦" :value="0"> </el-option> |
| | | <el-option label="æ¯" :value="1"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addDlog = false">å æ¶</el-button> |
| | | <el-button :loading="addLoading" type="primary" @click="submitProduct('addForm')">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import { |
| | | selectStandardMethodList, |
| | | getStandardTree2, |
| | | delStandardMethod, |
| | | addStandardMethod, |
| | | upStandardMethod, |
| | | } from "@/api/cnas/process/method/standardMethod"; |
| | | export default { |
| | | name: 'StandardMethod', |
| | | components: { |
| | | limsTable, |
| | | }, |
| | | data() { |
| | | return { |
| | | addPower: true, |
| | | title: "æ°å¢", |
| | | inPower: true, |
| | | queryParams: {}, |
| | | tableData: [], |
| | | column: [ |
| | | { label: "é¢å", prop: "field", width: "100px" }, |
| | | { label: "æ åç¼å·", prop: "code", width: "100px" }, |
| | | { label: "æ£éªå¯¹è±¡", prop: "structureTestObjectId", width: "140px" }, |
| | | { label: "æ åæè¿°", prop: "name", width: "100px" }, |
| | | { label: "æ åæè¿°EN", prop: "nameEn", width: "100px" }, |
| | | { label: "夿³¨", prop: "remark" }, |
| | | { label: "èµè´¨", prop: "qualificationId" }, |
| | | { |
| | | label: "æ¯å¦äº§åæ å", |
| | | prop: "isProduct", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | if (params == 0) { |
| | | return "å¦"; |
| | | } else { |
| | | return "æ¯"; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params == 0) { |
| | | return "danger"; |
| | | } else { |
| | | return "primary"; |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: "æ¯å¦å¯ç¨", |
| | | prop: "isUse", |
| | | formatData: (params) => { |
| | | if (params == 0) { |
| | | return "å¦"; |
| | | } else { |
| | | return "æ¯"; |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params == 0) { |
| | | return "danger"; |
| | | } else { |
| | | return "primary"; |
| | | } |
| | | }, |
| | | }, |
| | | { label: "å建人", prop: "createUserName" }, |
| | | { label: "å建æ¶é´", prop: "createTime" }, |
| | | { label: "æ´æ°äºº", prop: "updateUserName" }, |
| | | { label: "æ´æ°æ¶é´", prop: "updateTime" }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | | label: "æä½", |
| | | operation: [ |
| | | { |
| | | name: "ç¼è¾", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.title = "ç¼è¾"; |
| | | this.addForm = row; |
| | | this.addForm.structureTestObjectId = JSON.parse( |
| | | this.addForm.structureTestObjectId |
| | | ); |
| | | this.addDlog = true; |
| | | }, |
| | | }, |
| | | { |
| | | name: "å é¤", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleDelete(row); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 1, |
| | | }, |
| | | tableLoading: false, |
| | | addForm: {}, |
| | | addDlog: false, |
| | | addLoading: false, |
| | | qualificationList: [], |
| | | tandardTree: [], |
| | | addRules: { |
| | | code: [{ required: true, message: "请è¾å
¥æ åç¼å·", trigger: "blur" }], |
| | | name: [{ required: true, message: "请è¾å
¥æ åæè¿°", trigger: "blur" }], |
| | | nameEn: [ |
| | | { required: true, message: "请è¾å
¥æ åæè¿°EN", trigger: "blur" }, |
| | | ], |
| | | isProduct: [ |
| | | { required: true, message: "è¯·éæ©æ¯å¦äº§åæ å", trigger: "change" }, |
| | | ], |
| | | isUse: [ |
| | | { required: true, message: "è¯·éæ©æ¯å¦å¯ç¨", trigger: "change" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getQualificationList(); |
| | | this.selectTestObjectByName(); |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | getList() { |
| | | this.tableLoading = true; |
| | | let param = { ...this.queryParams, ...this.page }; |
| | | delete param.total; |
| | | selectStandardMethodList({ ...param }) |
| | | .then((res) => { |
| | | this.tableLoading = false; |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records; |
| | | this.page.total = res.data.total; |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | | this.tableLoading = false; |
| | | }); |
| | | }, |
| | | pagination({ page, limit }) { |
| | | this.page.current = page; |
| | | this.page.size = limit; |
| | | this.getList(); |
| | | }, |
| | | refreshTable() { |
| | | this.page.current = 1; |
| | | this.getList(); |
| | | this.selectTestObjectByName(); |
| | | }, |
| | | refresh() { |
| | | this.selectTestObjectByName(); |
| | | this.page.current = 1; |
| | | this.queryParams = {}; |
| | | this.getList(); |
| | | }, |
| | | // æéåé
|
| | | getPower() { |
| | | let power = JSON.parse(sessionStorage.getItem("power")); |
| | | let up = false; |
| | | let del = false; |
| | | let add = false; |
| | | let inPower = false; |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == "addStandardMethod") { |
| | | add = true; |
| | | } |
| | | if (power[i].menuMethod == "delStandardMethod") { |
| | | del = true; |
| | | } |
| | | if (power[i].menuMethod == "upStandardMethod") { |
| | | up = true; |
| | | } |
| | | if (power[i].menuMethod == "importStandardDetails") { |
| | | inPower = true; |
| | | } |
| | | } |
| | | this.addPower = add; |
| | | this.inPower = inPower; |
| | | }, |
| | | openAdd() { |
| | | this.title = "æ°å¢"; |
| | | this.addForm = {}; |
| | | this.addDlog = true; |
| | | }, |
| | | getQualificationList() { |
| | | this.getDicts("cnas_method_qualification").then((response) => { |
| | | let arr = response.data.map((m) => { |
| | | return { |
| | | label: m.dictLabel, |
| | | value: m.dictValue, |
| | | }; |
| | | }); |
| | | this.qualificationList = arr; |
| | | }); |
| | | }, |
| | | selectTestObjectByName() { |
| | | getStandardTree2().then((res) => { |
| | | res.data.forEach((a) => { |
| | | this.cascaderFieldData(a); |
| | | }); |
| | | this.tandardTree = res.data; |
| | | }); |
| | | }, |
| | | cascaderFieldData(val) { |
| | | if (val.children === undefined) { |
| | | return; |
| | | } else if (val.children.length == 0) { |
| | | delete val.children; |
| | | } else { |
| | | val.children.forEach((a) => { |
| | | this.cascaderFieldData(a); |
| | | }); |
| | | } |
| | | }, |
| | | submitProduct(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.addLoading = true; |
| | | let addForm = JSON.parse(JSON.stringify(this.addForm)); |
| | | addForm.structureTestObjectId = JSON.stringify( |
| | | addForm.structureTestObjectId |
| | | ); |
| | | if (this.title == "æ°å¢") { |
| | | addStandardMethod(addForm) |
| | | .then((res) => { |
| | | this.addLoading = false; |
| | | if (res.code != 200) { |
| | | return; |
| | | } |
| | | this.$message.success("æäº¤æå"); |
| | | this.getList(); |
| | | this.addDlog = false; |
| | | }) |
| | | .catch((err) => { |
| | | this.addLoading = false; |
| | | }); |
| | | } else { |
| | | upStandardMethod(addForm) |
| | | .then((res) => { |
| | | this.addLoading = false; |
| | | if (res.code != 200) { |
| | | return; |
| | | } |
| | | this.$message.success("æäº¤æå"); |
| | | this.getList(); |
| | | this.addDlog = false; |
| | | }) |
| | | .catch((err) => { |
| | | this.addLoading = false; |
| | | }); |
| | | } |
| | | } else { |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | handleDelete(row) { |
| | | this.$confirm("æ¯å¦å é¤è¯¥æ¡æ°æ®?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | delStandardMethod({ id: row.id }).then((res) => { |
| | | if (res.code == 201) return; |
| | | this.$message.success("å 餿å"); |
| | | this.getList(); |
| | | }); |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |