| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="contract-review"> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">è¯æ ·åç§°ï¼</div> |
| | | <div class="search_input"><el-input v-model="queryParams.sample" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">å§æåä½ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="queryParams.company" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">ç产åä½ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="queryParams.production" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">å§æäººï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="queryParams.prepareUser" clearable placeholder="请è¾å
¥" size="small" |
| | | @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> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 270px)'" |
| | | :page="page" @pagination="pagination"></lims-table> |
| | | <!-- <ValueTable :key="upIndex" ref="ValueTable" :componentData="componentData" |
| | | :delUrl="$api.processOrder.delProcessOrder" :url="$api.processOrder.pageProcessOrder" /> --> |
| | | </div> |
| | | <el-dialog :visible.sync="addDialogVisible" title="è¡¥å
ä¿¡æ¯" width="400px"> |
| | | <el-row> |
| | | <el-col :span="24" style="margin-bottom: 16px;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">å¤å®è§åï¼</div> |
| | | <div class="search_input" style="display: flex;align-items: center;"> |
| | | <!-- <el-input size="small" placeholder="请è¾å
¥" clearable v-model="addInfo.rule"></el-input> --> |
| | | <el-radio-group v-model="addInfo.rule" size="small" style="width: 60%;"> |
| | | <el-radio label="ä¸èèä¸ç¡®å®åº¦">ä¸èèä¸ç¡®å®åº¦</el-radio> |
| | | <el-radio label="èèä¸ç¡®å®åº¦">èèä¸ç¡®å®åº¦</el-radio> |
| | | </el-radio-group> |
| | | <el-input v-if="addInfo.rule == 'èèä¸ç¡®å®åº¦'" v-model="addInfo.num" placeholder="请è¾å
¥" size="small" |
| | | style="width: 80px;margin-right: 10px;"></el-input> |
| | | <span v-if="addInfo.rule == 'èèä¸ç¡®å®åº¦'"> %</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="24" style="margin-bottom: 16px;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">综å室ç¾å人ï¼</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="addInfo.comprehensiveUser" placeholder="è¯·éæ©" size="small" style="width: 100%;"> |
| | | <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="24" style="margin-bottom: 16px;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">æ¥æ¶æ¥æï¼</div> |
| | | <div class="search_input"> |
| | | <el-date-picker v-model="addInfo.comprehensiveTime" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" size="small" |
| | | style="width: 100%;" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="24" style="margin-bottom: 16px;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">颿 ·åï¼</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="addInfo.issueUser" placeholder="è¯·éæ©" size="small" style="width: 100%;"> |
| | | <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="24" style="margin-bottom: 16px;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">颿 ·æ¥æï¼</div> |
| | | <div class="search_input"> |
| | | <el-date-picker v-model="addInfo.issueTime" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" size="small" |
| | | style="width: 100%;" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addDialogVisible = false">å æ¶</el-button> |
| | | <el-button :loading="addLoading" type="primary" @click="handleAdd">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :class="{ downPdf: title == 'ä¸è½½' }" :modal="title != 'ä¸è½½'" :title="title" |
| | | :visible.sync="detailDialogVisible" top="20px" width="900px"> |
| | | <div style="max-height: 75vh;overflow-y: auto;"> |
| | | <div id="dialogBody"> |
| | | <table border="1" cellpadding="10" class="tables heads" style="border: 1px dashed black;"> |
| | | <tr> |
| | | <td rowspan="2"> |
| | | <img alt="" src="@/assets/images/logo2.png" style="width: 80%;"> |
| | | </td> |
| | | <td> |
| | | <p>è®°å½åç§°ï¼æ£éªå§æå</p> |
| | | <p class="en">Record name: Commission List of Testing</p> |
| | | </td> |
| | | <td> |
| | | <p>ä¿åæéï¼6å¹´</p> |
| | | <p class="en">Record retention:6 years</p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <p>è®°å½ç¼å·ï¼ ZTT/QR-16-04-a</p> |
| | | <p class="en">Record number: ZTT/QR-16-04-a</p> |
| | | </td> |
| | | <td> |
| | | <p>彿¡£é¨é¨ï¼ç»¼å室</p> |
| | | <p class="en">Archive department: general office</p> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <h4 style="display: flex;align-items: center;flex-direction: column;justify-content: center;"> |
| | | <span style="font-size: 28px;">æ£ éª å§ æ å</span> |
| | | <span>Commission List of Testing</span> |
| | | </h4> |
| | | <p style="margin-top: 16px;margin-left: 600px;">å§æç¼å·ï¼{{ currentInfo.entrustCode }}</p> |
| | | <p class="en" style="margin-left: 600px;">Report No:{{ currentInfo.entrustCode }}</p> |
| | | <table border="1" cellpadding="10" class="tables"> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>è¯æ ·åç§°</p> |
| | | <p class="en">Sample name</p> |
| | | </td> |
| | | <td>{{ currentInfo.sample }}</td> |
| | | <td> |
| | | <p>å§ææ¶é´</p> |
| | | <p class="en">Commission date</p> |
| | | </td> |
| | | <td colspan="2">{{ currentInfo.createTime }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>å å·</p> |
| | | <p class="en">Model NO.</p> |
| | | </td> |
| | | <td>{{ currentInfo.sampleType }}</td> |
| | | <td> |
| | | <p>å§æåä½</p> |
| | | <p class="en">Commission unit</p> |
| | | </td> |
| | | <td colspan="2">{{ currentInfo.company }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>ç产åä½</p> |
| | | <p class="en">Production unit</p> |
| | | </td> |
| | | <td>{{ currentInfo.production }}</td> |
| | | <td> |
| | | <p>å§æäºº</p> |
| | | <p class="en">Commission by</p> |
| | | </td> |
| | | <td colspan="2">{{ currentInfo.prepareUser }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>æ ·åæ°é</p> |
| | | <p class="en">Quantity</p> |
| | | </td> |
| | | <td>{{ currentInfo.sampleNum }}</td> |
| | | <td> |
| | | <p>æ ·åç¶æ</p> |
| | | <p class="en">Sample status</p> |
| | | </td> |
| | | <td colspan="2">{{ |
| | | insStateList.find(m => m.value == currentInfo.insState) ? insStateList.find(m => m.value == |
| | | currentInfo.insState).label : '/' |
| | | }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>æ¯å¦çæ ·</p> |
| | | <p class="en">Reserve sample or not</p> |
| | | </td> |
| | | <td> |
| | | <span v-if="currentInfo.isLeave == 1">æ¯ <span class="en">Yes</span></span> |
| | | <span v-else>å¦ <span class="en">No</span></span> |
| | | </td> |
| | | <td> |
| | | <p>æ ·åå¤çæ¹å¼</p> |
| | | <p class="en">Sample treatment</p> |
| | | </td> |
| | | <td colspan="2"> |
| | | <span v-if="currentInfo.processing == 0">å§æåä½åå <span class="en">Taken away by commission |
| | | unit</span></span> |
| | | <span v-else>å®éªå®¤å¤ç <span class="en">Laboratory treatment</span></span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>约å®å®ææ¶é´(æ¥åæ¥æ)</p> |
| | | <p class="en">Agreed completion time</p> |
| | | </td> |
| | | <td>{{ currentInfo.appointed }}</td> |
| | | <td> |
| | | <p>æ¥ååéæ¹å¼</p> |
| | | <p class="en">Way of report sending</p> |
| | | </td> |
| | | <td colspan="2"> |
| | | <span v-if="currentInfo.send == 1">èªå <span class="en">Taken by themselves</span></span> |
| | | <span v-else>å
¶ä» <span class="en">Other:</span></span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <p>åºå·</p> |
| | | <p class="en">NO.</p> |
| | | </td> |
| | | <td> |
| | | <p>æ ·åç¼å·</p> |
| | | <p class="en">Sample number</p> |
| | | </td> |
| | | <td> |
| | | <p>è¯éªé¡¹ç®</p> |
| | | <p class="en">Test item</p> |
| | | </td> |
| | | <td> |
| | | <p>æ£éªä¾æ®</p> |
| | | <p class="en">Test standard</p> |
| | | </td> |
| | | <td> |
| | | <p>è¯éªè¦æ±</p> |
| | | <p class="en">Test standard</p> |
| | | </td> |
| | | <td> |
| | | <p>夿³¨</p> |
| | | <p class="en">Note</p> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(item, index) in currentInfo.sampleItems |
| | | " :key="index"> |
| | | <td>{{ index + 1 }}</td> |
| | | <td> |
| | | <p>{{ item.code }}</p> |
| | | <p>{{ item.model }}</p> |
| | | </td> |
| | | <td>{{ item.product }}</td> |
| | | <td>{{ item.standardMethodList }}</td> |
| | | <td>{{ item.groupConcatTell }}</td> |
| | | <td>{{ item.remark }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>å¤å®è§å</p> |
| | | <p class="en">Criterion rule</p> |
| | | </td> |
| | | <td colspan="4"> |
| | | <span v-if="currentInfo.rule && !currentInfo.rule.includes('-')">ä¸èèä¸ç¡®å®åº¦ <span class="en">Not |
| | | considering |
| | | uncertainty</span></span> |
| | | <span v-else-if="currentInfo.rule && currentInfo.rule.includes('-')">èèä¸ç¡®å®åº¦ <span class="en">Consider |
| | | uncertainty ( {{ currentInfo.rule.split('-')[1] }}%)</span></span> |
| | | <span v-else>/</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>å§æäººç¾å</p> |
| | | <p class="en">Signature of consignor</p> |
| | | </td> |
| | | <td> |
| | | <img :alt="currentInfo.prepareUser" :src="javaApi + '/img/' + currentInfo.prepareUserUrl" |
| | | style="height: 100%;" /> |
| | | </td> |
| | | <td> |
| | | <p>å§ææ¥æ</p> |
| | | <p class="en">Date of consignation</p> |
| | | </td> |
| | | <td colspan="2">{{ currentInfo.createTime }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>å§æäººèç³»çµè¯</p> |
| | | <p class="en">Contact number</p> |
| | | </td> |
| | | <td colspan="4">{{ currentInfo.phone }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>综å室ç¾å</p> |
| | | <p class="en">Signature of general office</p> |
| | | </td> |
| | | <td><img :alt="currentInfo.comprehensiveUser" :src="javaApi + '/img/' + currentInfo.comprehensiveUserUrl" |
| | | style="height: 100%;" /></td> |
| | | <td> |
| | | <p>æ¥æ¶æ¥æ</p> |
| | | <p class="en">Receipt date</p> |
| | | </td> |
| | | <td colspan="2">{{ currentInfo.comprehensiveTime }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>颿 ·åç¾å</p> |
| | | <p class="en">Signature of sample taker</p> |
| | | </td> |
| | | <td><img :alt="currentInfo.issueUser" :src="javaApi + '/img/' + currentInfo.issueUserUrl" |
| | | style="height: 100%;" /></td> |
| | | <td> |
| | | <p>颿 ·æ¥æ</p> |
| | | <p class="en">Sample date</p> |
| | | </td> |
| | | <td colspan="2">{{ currentInfo.issueTime }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2" rowspan="3"> |
| | | <p>æ£æµæºæä¿¡æ¯</p> |
| | | <p class="en">Information about Test center</p> |
| | | </td> |
| | | <td colspan="4"> |
| | | <p>æ±èä¸å¤©ç§æè¡ä»½æéå
¬å¸æ£æµä¸å¿</p> |
| | | <p class="en">Test cnter of Jiangsu ZhongtianTechnology CO.,Ltd</p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="4"> |
| | | <p>å°åï¼æ±èçå¦ä¸å¿æ²³å£éä¸å¤©è·¯1å·</p> |
| | | <p class="en">Address:No.1,Zhongtian Village,Hekou Town,Rudong County,Nantong City,JiangsuProvince</p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="4"> |
| | | <p>çµè¯ï¼0513-84885175</p> |
| | | <p class="en">Telephone:0513-84885175</p> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <p style="margin-top: 10px;margin-left: 20px;">æ³¨ï¼æ¬æ£éªå§æåä¸å¼äºä»½ï¼ä¸ä»½ç»¼å室彿¡£ï¼ä¸ä»½å§æåä½çåã</p> |
| | | <p class="en" style="margin-left: 20px;">Note:The commission list of testing is done in duplicate, general |
| | | office and client shall retain their respective one.</p> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import { |
| | | exportInspectionOrder, |
| | | doProcessOrder, |
| | | getProcessOrder, |
| | | delProcessOrder, |
| | | pageProcessOrder, |
| | | } from '@/api/cnas/process/demand.js' |
| | | import { selectUserCondition } from "@/api/system/user"; |
| | | export default { |
| | | components: { |
| | | limsTable |
| | | }, |
| | | data() { |
| | | return { |
| | | title: 'æ£éªå§æå', |
| | | detailDialogVisible: false, |
| | | addLoading: false, |
| | | addDialogVisible: false, |
| | | outLoading: false, |
| | | componentData: { |
| | | entity: { |
| | | sample: null, |
| | | company: null, |
| | | production: null, |
| | | prepareUser: null, |
| | | orderBy: { |
| | | field: 'createTime', |
| | | order: 'desc' |
| | | } |
| | | }, |
| | | isIndex: true, |
| | | showSelect: false, |
| | | select: false, |
| | | do: [{ |
| | | id: 'handleLook', |
| | | font: 'æ¥ç', |
| | | type: 'text', |
| | | method: 'handleLook' |
| | | }, { |
| | | id: 'handleDown', |
| | | font: '导åº', |
| | | type: 'text', |
| | | method: 'handleDown' |
| | | }, { |
| | | id: 'delete', |
| | | font: 'å é¤', |
| | | type: 'text', |
| | | method: 'doDiy' |
| | | }, { |
| | | id: 'handleWork', |
| | | font: 'è¡¥å
ä¿¡æ¯', |
| | | type: 'text', |
| | | method: 'handleWork' |
| | | }], |
| | | tagField: { |
| | | insState: { |
| | | select: [ |
| | | { |
| | | label: 'å¾
å®¡æ ¸', |
| | | value: 0 |
| | | }, { |
| | | label: 'å¾
æ£éª', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label: 'å·²æ£éª', |
| | | value: 4 |
| | | }, |
| | | { |
| | | label: 'éå', |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: 'æ¤é', |
| | | value: 3 |
| | | }, |
| | | ] |
| | | }, |
| | | isLeave: { |
| | | select: [ |
| | | { |
| | | value: 0, |
| | | label: 'ä¸çæ ·' |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: 'çæ ·' |
| | | }, |
| | | ] |
| | | }, |
| | | processing: { |
| | | select: [ |
| | | { |
| | | value: 0, |
| | | label: 'å§æåä½åå' |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: 'å®éªå®¤å¤ç' |
| | | }, |
| | | ] |
| | | }, |
| | | }, |
| | | selectField: { |
| | | sendUser: { |
| | | select: [] |
| | | }, |
| | | signatory: { |
| | | select: [] |
| | | }, |
| | | }, |
| | | requiredAdd: [], |
| | | requiredUp: [], |
| | | needSort: [], |
| | | inputType: '' |
| | | }, |
| | | entityCopy: {}, |
| | | upIndex: 0, |
| | | currentInfo: {}, |
| | | personList: [], |
| | | addInfo: {}, |
| | | insStateList: [ |
| | | { |
| | | label: 'å¾
å®¡æ ¸', |
| | | value: 0, |
| | | type: 'primary' |
| | | }, { |
| | | label: 'å¾
æ£éª', |
| | | value: 1, |
| | | type: 'warning' |
| | | }, |
| | | { |
| | | label: 'å·²æ£éª', |
| | | value: 4, |
| | | type: 'success' |
| | | }, |
| | | { |
| | | label: 'éå', |
| | | value: 2, |
| | | type: 'danger' |
| | | }, |
| | | { |
| | | label: 'æ¤é', |
| | | value: 3, |
| | | type: 'info' |
| | | }, |
| | | ], |
| | | queryParams: {}, |
| | | tableData: [], |
| | | column: [ |
| | | { label: "è¯æ ·åç§°", prop: "sample" }, |
| | | { label: "å§ææ¶é´", prop: "createTime" }, |
| | | { |
| | | label: "åå·", |
| | | prop: "sampleType", |
| | | }, |
| | | { label: "å§æåä½", prop: "company" }, |
| | | { label: "ç产åä½", prop: "production" }, |
| | | { label: "å§æäºº", prop: "prepareUser" }, |
| | | { label: "æ ·åæ°é", prop: "sampleNum" }, |
| | | { |
| | | label: "æ ·åç¶æ", prop: "insState", dataType: 'tag', |
| | | formatData: (params) => { |
| | | return this.insStateList.find((m) => m.value == params).label; |
| | | }, |
| | | formatType: (params) => { |
| | | return this.insStateList.find((m) => m.value == params).type; |
| | | }, |
| | | }, |
| | | { |
| | | label: "æ¯å¦çæ ·", prop: "isLeave", dataType: 'tag', |
| | | formatData: (params) => { |
| | | if (params == 0) { |
| | | return 'ä¸çæ ·' |
| | | } else if (params == 1) { |
| | | return 'çæ ·' |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | if (params == 0) { |
| | | return 'warning' |
| | | } else if (params == 1) { |
| | | return 'success' |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | label: "æ ·åå¤çæ¹å¼", prop: "processing", dataType: 'tag', |
| | | formatData: (params) => { |
| | | if (params == 0) { |
| | | return 'å§æåä½åå' |
| | | } else if (params == 1) { |
| | | return 'å®éªå®¤å¤ç' |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | | label: "æä½", |
| | | operation: [ |
| | | { |
| | | name: "æ¥ç", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleLook(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "导åº", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleDown(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "è¡¥å
ä¿¡æ¯", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleWork(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "å é¤", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleDelete(row); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 0, |
| | | }, |
| | | tableLoading: false, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getList() |
| | | this.getAuthorizedPerson() |
| | | }, |
| | | methods: { |
| | | getPower() { |
| | | let power = JSON.parse(sessionStorage.getItem('power')) |
| | | let del = false |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == 'delProcessOrder') { |
| | | del = true |
| | | } |
| | | } |
| | | if (!del) { |
| | | this.componentData.do.splice(2, 1) |
| | | } |
| | | }, |
| | | getList() { |
| | | this.tableLoading = true; |
| | | let param = { ...this.queryParams, ...this.page }; |
| | | delete param.total; |
| | | pageProcessOrder({ ...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(); |
| | | }, |
| | | refresh() { |
| | | this.queryParams = {}; |
| | | this.page.current = 1; |
| | | this.getList(); |
| | | }, |
| | | refreshTable() { |
| | | this.page.current = 1; |
| | | this.getList(); |
| | | }, |
| | | // å¯¼åº |
| | | handleDown(row) { |
| | | exportInspectionOrder({ id: row.id }).then(res => { |
| | | const blob = new Blob([res], { |
| | | type: 'application/force-download' |
| | | }) |
| | | this.$download.saveAs(blob, row.sample + '-' + row.sampleType + '-' + 'æ£éªå§æå.docx') |
| | | }).catch(err => { |
| | | }) |
| | | }, |
| | | // è¡¥å
|
| | | handleWork(row) { |
| | | this.addInfo = { ...row } |
| | | this.currentInfo = row; |
| | | this.addDialogVisible = true; |
| | | }, |
| | | // 人åå表 |
| | | getAuthorizedPerson() { |
| | | selectUserCondition().then(res => { |
| | | let data = [] |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | label: a.name, |
| | | value: a.id |
| | | }) |
| | | }) |
| | | this.personList = data |
| | | }) |
| | | }, |
| | | // è¡¥å
ä¿å |
| | | handleAdd() { |
| | | if (this.addInfo.rule == 'èèä¸ç¡®å®åº¦' && !this.addInfo.num) { |
| | | return this.$message({ |
| | | type: 'error', |
| | | message: '请è¾å
¥èèä¸ç¡®å®åº¦' |
| | | }); |
| | | } else if (this.addInfo.rule == 'èèä¸ç¡®å®åº¦' && this.addInfo.num) { |
| | | this.addInfo.rule = 'èèä¸ç¡®å®åº¦-' + this.addInfo.num |
| | | } |
| | | this.addLoading = true; |
| | | doProcessOrder({ id: this.currentInfo.id, ...this.addInfo }).then(res => { |
| | | this.addLoading = false; |
| | | if (res.code == 201) { |
| | | return |
| | | } |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'è¡¥å
æå' |
| | | }); |
| | | this.refreshTable() |
| | | this.addDialogVisible = false; |
| | | }).catch(err => { |
| | | }) |
| | | }, |
| | | // æ¥ç |
| | | handleLook(row) { |
| | | getProcessOrder({ id: row.id }).then(res => { |
| | | if (res.code == 200) { |
| | | this.currentInfo = res.data |
| | | this.title = 'æ£éªå§æå'; |
| | | this.detailDialogVisible = true |
| | | } |
| | | }).catch(err => { |
| | | }) |
| | | }, |
| | | handleDelete(row) { |
| | | this.$confirm("æ¯å¦å é¤è¯¥æ¡æ°æ®?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | delProcessOrder({ id: row.id }).then((res) => { |
| | | console.log('res', res) |
| | | if (res.code == 200) { |
| | | this.$message.success("å 餿å"); |
| | | this.refresh(); |
| | | } |
| | | }); |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | |
| | | .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 { |
| | | background-color: #fff; |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | padding-top: 0; |
| | | } |
| | | |
| | | .tables { |
| | | table-layout: fixed; |
| | | width: 100%; |
| | | } |
| | | |
| | | .tables td { |
| | | height: 40px; |
| | | width: 100px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | } |
| | | |
| | | .en { |
| | | font-size: 12px; |
| | | word-break: break-word; |
| | | /* èªå¨æè¡ */ |
| | | overflow-wrap: break-word; |
| | | /* 鲿¢æº¢åº */ |
| | | white-space: normal; |
| | | /* é»è®¤æ¢è¡ */ |
| | | } |
| | | |
| | | .heads td { |
| | | border: 1px dashed black; |
| | | /* åå
æ ¼çè线 */ |
| | | padding: 8px; |
| | | text-align: left; |
| | | } |
| | | |
| | | .downPdf { |
| | | opacity: 0 !important; |
| | | } |
| | | </style> |