From 34a7e21b3508ac0f5f011d958210fdb7176d726b Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期六, 09 九月 2023 11:54:05 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/lims-before

---
 src/views/laboratory/measure/Add.vue |  209 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 206 insertions(+), 3 deletions(-)

diff --git a/src/views/laboratory/measure/Add.vue b/src/views/laboratory/measure/Add.vue
index a2f0802..889c813 100644
--- a/src/views/laboratory/measure/Add.vue
+++ b/src/views/laboratory/measure/Add.vue
@@ -1,10 +1,213 @@
 <template>
     <div>
-        11112561564564456456
+        <el-col :span="10">
+            <p style="font-size: 13px;padding-left: 40px;">璁″垝淇℃伅</p>
+        </el-col>
+        <el-col>
+            <el-form :model="planAddInfo" style="padding-left: 150px;">
+                <el-col>
+                    <el-col :span="6" style="display: flex;justify-content: space-around;">
+                        <el-form-item label="璐熻矗浜猴細" :rules="[{ required: true, message: '璇烽�夋嫨璐熻矗浜�', trigger: 'change' }]">
+                            <el-select v-model="planAddInfo.measurePerson" placeholder="璇烽�夋嫨璐熻矗浜�">
+                                <el-option v-for="item in userList" :key="item.value" :label="item.label"
+                                    :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8" style="display: flex;justify-content: space-around;">
+                        <el-form-item label="璁″垝鏃堕棿锛�" :rules="[{ required: true, message: '璇烽�夋嫨璁″垝鏃堕棿', trigger: 'change' }]">
+                            <el-date-picker v-model="planAddInfo.planDate" type="daterange" range-separator="鑷�"
+                                start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
+                            </el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="5"></el-col>
+                    <el-col :span="5" style="display: flex;justify-content: space-around;">
+                        <el-form-item label="璁¢噺鍗曚綅锛�">
+                            <el-input style="width: 150px;" v-model="planAddInfo.unit" placeholder=""></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-col>
+            </el-form>
+        </el-col>
+        <el-col>
+            <el-col style="font-size: 13px;padding-left: 55px;">
+                璁¢噺淇℃伅
+            </el-col>
+            <el-col>
+                <el-progress style="width: 95%;padding-left: 40px;margin-top: 20px;" :percentage="6" :stroke-width="2"
+                    :show-text="false"></el-progress>
+            </el-col>
+        </el-col>
+
+        <el-col style="width:93%;height: 20vh;margin-top: 30px; margin-left: 40px;">
+            <el-button icon="el-icon-plus" @click="addcodePointsTable()" style="margin-bottom: 10px;"
+                type="primary">鏂板璁¢噺</el-button>
+            <el-table max-height="300" ref="codePointsTable" :cell-style="{ textAlign: 'center' }"
+                :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
+                :data="codePointsTable" style="width: 100%">
+                <el-table-column type="index" v-model="codePointsTable.index" label="搴忓彿" min-width="90" />
+                <el-table-column prop="equipmentPointName" label="浠櫒璁惧" min-width="150">
+                    <template slot-scope="scope">
+                        <span v-show="!codePointesTableStatus">{{ scope.row.equipmentPointName }}</span>
+                        <el-select @change="insListChange(scope.row.equipmentPointName, scope)"
+                            v-model="scope.row.equipmentPointName" placeholder="璇烽�夋嫨浠櫒璁惧">
+                            <el-option v-for="item in insList" :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="measuringRange" label="娴嬮噺鑼冨洿" min-width="150">
+                    <template slot-scope="scope">
+                        <span v-show="!codePointesTableStatus">{{ scope.row.measuringRange }}</span>
+                        <el-input disabled v-show="codePointesTableStatus" v-model="scope.row.measuringRange" />
+                    </template>
+                </el-table-column>
+                <el-table-column prop="termValidity" label="璁¢噺鍛ㄦ湡" min-width="150">
+                    <template slot-scope="scope">
+                        <span v-show="!codePointesTableStatus">{{ scope.row.termValidity }}</span>
+                        <el-input disabled v-show="codePointesTableStatus" v-model="scope.row.termValidity" />
+                    </template>
+                </el-table-column>
+                <el-table-column prop="result" label="璁¢噺缁撴灉" min-width="200">
+                    <template slot-scope="scope">
+                        <span v-show="!codePointesTableStatus">{{ scope.row.result }}</span>
+                        <el-select v-model="scope.row.result" placeholder="璇烽�夋嫨">
+                            <el-option v-for="item in result" :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="endDate" label="璁¢噺鏃ユ湡" min-width="200">
+                    <template slot-scope="scope">
+                        <span v-show="!codePointesTableStatus">{{ scope.row.endDate }}</span>
+                        <el-date-picker v-model="scope.row.endDate" type="date" placeholder="閫夋嫨鏃ユ湡">
+                        </el-date-picker>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="index" label="鎿嶄綔" min-width="200">
+                    <template slot-scope="scope">
+                        <span><a @click="removetableIndex(scope.row.index)" style="color: deepskyblue;">浣滃簾</a></span>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-col>
     </div>
 </template>
 <script>
-export default{
-
+import {
+    getListUserAndListIns, addPlanAndMeasure
+} from '@/api/laboratory/measure'
+import { dateFormat } from "../../../utils/dateUtil";
+import { MessageBox, Message } from 'element-ui'
+export default {
+    data() {
+        return {
+            planAddInfo: {
+                plannedOrderNumber: '',
+                measurePerson: '',
+                planDate: "",
+                unit: '',
+                createPerson: '',
+                createTime: ''
+            },
+            codePointsTable: [{
+                "index": 1,
+                "equipmentPointName": '',
+                "measuringRange": '',
+                "termValidity": "",
+                "result": null,
+            }],
+            result: [{
+                label: '鍚堟牸',
+                value: 1
+            }, {
+                label: '鐭鍚庡彲鐢�',
+                value: 2
+            }, {
+                label: '涓嶅悎鏍�',
+                value: 3
+            }],
+            userList: [],
+            insList: [],
+            instrumentList: [],
+            // 鐮佺偣琛ㄦ牸鐨勭姸鎬侊細鏁版嵁灞曠ずfalse/鏂板杈撳叆true
+            codePointesTableStatus: false,
+        }
+    },
+    async created() {
+        this.codePointsTable = []
+        let res = await getListUserAndListIns()
+        res.data.userList.forEach(element => {
+            this.userList.push({ label: element.name, value: element.id })
+        });
+        this.instrumentList = res.data.instrumentList
+        res.data.instrumentList.forEach(item => {
+            this.insList.push({ label: item.equipmentName, value: item.id })
+        })
+    },
+    methods: {
+        addcodePointsTable() {
+            const newObj = {
+                index: this.codePointsTable.length + 1,
+                equipmentPointName: '',
+                measuringRange: '',
+                termValidity: "",
+                result: null,
+                endDate: null,
+                planDate: null
+            }
+            this.codePointsTable.push(newObj)
+            this.codePointesTableStatus = true
+        },
+        removetableIndex(id) {
+            this.codePointsTable = this.codePointsTable.filter(item => {
+                return item.index != id;
+            })
+        },
+        async add() {
+            if (this.planAddInfo.measurePerson == null || this.planAddInfo.measurePerson == ''||this.planAddInfo.planDate[0]==null||this.planAddInfo.planDate[0]=='') {
+                Message({
+                    message: "璐熻矗浜哄拰璁″垝鏃ユ湡涓嶈兘涓虹┖锛�",
+                    type: 'warning',
+                    duration: 2 * 1000
+                })
+                return false
+            }
+            this.planAddInfo.startTime = dateFormat(this.planAddInfo.planDate[0])
+            this.planAddInfo.endTime = dateFormat(this.planAddInfo.planDate[1])
+            console.log(this.planAddInfo);
+            this.planAddInfo.planDate = null
+            this.codePointsTable.forEach(item => {
+                if (item.endDate != null && item.endDate != '') {
+                    item.endDate = dateFormat(item.endDate)
+                }
+            })
+            console.log(this.codePointsTable);
+            let data = {}
+            this.codePointsTable.length > 0 ? data = { measureList: this.codePointsTable, plan: this.planAddInfo } : data = { plan: this.planAddInfo }
+            let add = await addPlanAndMeasure(data)
+            this.planAddInfo = {
+                plannedOrderNumber: '',
+                measurePerson: '',
+                planDate: "",
+                unit: '',
+                createPerson: '',
+                createTime: ''
+            }
+            this.codePointsTable = []
+            return add.data
+        },
+        insListChange(i, s) {
+            console.log(i);
+            console.log(s.$index);
+            let ins = this.instrumentList.filter(item => {
+                return item.id == i
+            })[0]
+            this.codePointsTable[s.$index].measuringRange = ins.measuringRange
+            this.codePointsTable[s.$index].termValidity = ins.termValidity + '鏈�'
+        }
+    }
 }
 </script>
\ No newline at end of file

--
Gitblit v1.9.3