李林
2024-03-13 e6b740a6e426aa4a12b66059c0330358900dae3e
功能调整
已修改8个文件
已删除1个文件
已添加1个文件
896 ■■■■ 文件已修改
src/assets/api/controller.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/add.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tool/excel.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a5-capacity-scope.vue 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-inspection-order.vue 218 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b2-standard-template.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b2-standard.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/data-reporting.vue 526 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/js/menu.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -140,4 +140,5 @@
    addStandardTemplate: "/StandardTemplate/addStandardTemplate", //添加检验模板
    upStandardTemplate: "/StandardTemplate/upStandardTemplate", //修改检验模板
    delStandardTemplate: "/StandardTemplate/delStandardTemplate", //删除检验模板
    getStandardTemplate: "/StandardTemplate/getStandardTemplate", //查询原始记录模板枚举
}
src/components/do/b1-ins-order/add.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
<style scoped>
    .ins_order_add{
        width: 100%;
        height: 100%;
    }
    .title {
        height: 60px;
        line-height: 60px;
    }
</style>
<template>
    <div class="ins_order_add">
        <div>
            <el-row class="title">
                <el-col :span="12" style="padding-left: 20px;">委托单信息</el-col>
                <el-col :span="12" style="text-align: right;">
                    <el-button size="medium" type="primary" @click="">提交</el-button>
                    <el-button size="medium" @click="">返回</el-button>
                </el-col>
            </el-row>
        </div>
    </div>
</template>
<script>
    export default{
        data() {
            return{
            }
        }
    }
</script>
src/components/tool/excel.vue
@@ -19,11 +19,11 @@
        border-color: transparent;
        cursor: pointer;
    }
    #luckysheet .save:hover{
        opacity: .8;
    }
    #luckysheet .save:active{
        opacity: .7;
    }
@@ -67,7 +67,7 @@
                                order: '0'
                            }],
                            enableAddRow: false,
                            row: 100,
                            row: 60,
                            column: 26,
                            enableAddBackTop: false,
                            showtoolbarConfig: {
@@ -94,4 +94,4 @@
            }
        }
    }
</script>
</script>
src/components/view/a5-capacity-scope.vue
@@ -148,28 +148,6 @@
                        inspectionItemType: {
                            select: []
                        },
                        valueType: {
                            select: []
                        },
                        bsm:{
                            select: []
                        },
                        inspectionValueType:{
                            select:[]
                        },
                        laboratory:{
                            select:[]
                        },
                        method:{select:[]},
                        deviceGroup:{select:[]}
                    },
                    selectField: {
                        inspectionItemType: {
                            select: []
                        },
                        valueType: {
                            select: []
                        },
                        bsm:{
                            select: []
                        },
@@ -181,10 +159,34 @@
                        },
                        method:{select:[]},
                        deviceGroup:{select:[]},
                        sample: {select:[]}
                        templateId:{
                            select:[]
                        },
                        sonLaboratory: {select:[]}
                    },
                    requiredAdd: ['inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','checkoutNumber','valueType','sample'],
                    requiredUp: ['inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','checkoutNumber','valueType','sample']
                    selectField: {
                        inspectionItemType: {
                            select: []
                        },
                        bsm:{
                            select: []
                        },
                        inspectionValueType:{
                            select:[]
                        },
                        laboratory:{
                            select:[]
                        },
                        templateId:{
                            select:[]
                        },
                        method:{select:[]},
                        deviceGroup:{select:[]},
                        sample: {select:[]},
                        sonLaboratory: {select:[]}
                    },
                    requiredAdd: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','checkoutNumber','sample'],
                    requiredUp: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','checkoutNumber','sample']
                },
                testObjectData: {
                    entity: {
@@ -226,13 +228,15 @@
            this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity)
            this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity)
            this.selectEnumByCategory()
            this.selectEnumByCategoryForValue()
            // this.selectEnumByCategoryForValue()
            this.selectEnumByCategoryForSpecial()
            this.selectEnumByCategoryForInspectionValueType()
            this.obtainItemParameterList()
            this.selectStandardMethods()
            this.selectEnumByCategoryForDevice()
            this.selectTestObjectByName()
            this.getStandardTemplate()
            this.selectEnumByCategoryForSLaboratory()
            this.getPower('0')
        },
        methods: {
@@ -287,7 +291,7 @@
            },
            selectEnumByCategoryForSpecial() {
                this.$axios.post(this.$api.enums.selectEnumByCategory, {
                    category: "特殊标识"
                    category: "是否"
                }).then(res => {
                    this.itemParameterData.selectField.bsm.select = res.data
                    this.itemParameterData.tagField.bsm.select = res.data
@@ -307,6 +311,14 @@
                }).then(res => {
                    this.itemParameterData.selectField.deviceGroup.select = res.data
                    this.itemParameterData.tagField.deviceGroup.select = res.data
                })
            },
            selectEnumByCategoryForSLaboratory() {
                this.$axios.post(this.$api.enums.selectEnumByCategory, {
                    category: "子实验室"
                }).then(res => {
                    this.itemParameterData.selectField.sonLaboratory.select = res.data
                    this.itemParameterData.tagField.sonLaboratory.select = res.data
                })
            },
            obtainItemParameterList() {
@@ -347,6 +359,20 @@
                    this.itemParameterData.selectField.sample.select = data
                })
            },
            getStandardTemplate() {
                this.$axios.get(this.$api.StandardTemplate.getStandardTemplate).then(res => {
                    let data = []
                    res.data.forEach(a => {
                        data.push({
                            label: a.name,
                            value: a.id,
                            type: 'success'
                        })
                    })
                    this.itemParameterData.selectField.templateId.select = data
                    this.itemParameterData.tagField.templateId.select = data
                })
            },
            // æƒé™åˆ†é…
            getPower(radio) {
                let power = JSON.parse(sessionStorage.getItem('power'))
src/components/view/b1-inspection-order.vue
@@ -69,117 +69,124 @@
</style>
<template>
    <div class="role_manage">
        <div>
            <el-row class="title">
                <el-col :span="12" style="padding-left: 20px;">检验下单</el-col>
                <el-col :span="12" style="text-align: right;">
                    <el-button size="medium" type="primary" @click="playOrder">下单</el-button>
                </el-col>
            </el-row>
    <div class="inspection_order">
        <div style="width: 100%;height: 100%;" v-if="active == 0">
            <div>
                <el-row class="title">
                    <el-col :span="12" style="padding-left: 20px;">检验下单</el-col>
                    <el-col :span="12" style="text-align: right;">
                        <el-button size="medium" type="primary" @click="playOrder">下单</el-button>
                    </el-col>
                </el-row>
            </div>
            <div class="search">
                <div class="search_thing">
                    <div class="search_label">委托编号:</div>
                    <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                            v-model="componentData.entity.deviceName" @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="componentData.entity.specificationModel" @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">
                <ul class="tab">
                    <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
                </ul>
                <!-- è¯­æ³• å­ç»„件通过 this.$emit +传入方法名 è°ƒç”¨çˆ¶ç»„件方法 ä¾‹å¦‚  this.$emit(selectAllByOne) å°±éœ€åœ¨çˆ¶ç»„件声明并传入  @selectAllByOne="selectAllByOne"-->
                <ValueTable ref="ValueTable" :url="$api.insOrder.selectInsOrderParameter" :componentData="componentData"
                    :key="upIndex" style="height: calc(100% - 44px)" @selectAllByOne="selectAllByOne"
                    @handleDataLook="handleDataLook" @download="download" @handleVerify="handleVerify" @handlEquash="handlEquash"
                    @handleIssued="handleIssued" />
            </div>
            <!-- å®¡æ ¸ -->
            <el-dialog title="下单审核" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose">
                <p style="font-size:16px;color:#333333" v-if="!isPass">委托编号<span
                        style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
                <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
                    <el-form-item label="请输入样品库位号:">
                        <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
                    </el-form-item>
                </el-form>
                <span slot="footer" class="dialog-footer">
                    <el-row v-if="!isPass">
                        <el-button @click="handleClose">退 å›ž</el-button>
                        <el-button type="primary" @click="submitForm" :loading="upLoad">通 è¿‡</el-button>
                    </el-row>
                    <el-row v-else>
                        <el-button @click="handleClose">返 å›ž</el-button>
                        <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®š</el-button>
                    </el-row>
                </span>
            </el-dialog>
            <!-- æ’¤é”€ -->
            <el-dialog title="下单撤销" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose">
                <p style="font-size:16px;color:#333333" v-if="!isQuash">委托编号<span
                        style="color:#34BD66">ZTMS2023071001</span>的信息是否撤销</p>
                <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
                    <el-form-item label="请输入撤销原因:">
                        <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
                    </el-form-item>
                </el-form>
                <span slot="footer" class="dialog-footer">
                    <el-row v-if="!isQuash">
                        <el-button @click="handleClose">取 æ¶ˆ</el-button>
                        <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®š</el-button>
                    </el-row>
                    <el-row v-else>
                        <el-button @click="handleClose">返 å›ž</el-button>
                        <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®š</el-button>
                    </el-row>
                </span>
            </el-dialog>
            <!-- ä¸‹å‘ -->
            <el-dialog title="检验下发" :visible.sync="issuedDialogVisible" width="30%" :before-close="handleClose">
                <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm">
                    <el-form-item label="约定时间:">
                        <el-date-picker style="width:100%" format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="formData.downTime"
                            type="date" size="small" placeholder="选择时间">
                        </el-date-picker>
                    </el-form-item>
                    <el-form-item label="指派人员:">
                        <el-select v-model="formData.equipmentManager" 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>
                    </el-form-item>
                </el-form>
                <span slot="footer" class="dialog-footer">
                    <el-row>
                        <el-button @click="handleClose">取 æ¶ˆ</el-button>
                        <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®š</el-button>
                    </el-row>
                </span>
            </el-dialog>
            <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="70%" :before-close="handleClose">
                <div style="height: 70vh;overflow-y: auto;">
                    <ValueTable ref="ValueTableDataLook" :url="$api.deviceScope.selectDeviceParameter"
                        :componentData="componentDataDataLook" :key="upIndex" />
                </div>
            </el-dialog>
        </div>
        <div class="search">
            <div class="search_thing">
                <div class="search_label">委托编号:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                        v-model="componentData.entity.deviceName" @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="componentData.entity.specificationModel" @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 style="width: 100%;height: 100%;" v-if="active == 1">
            <Add/>
        </div>
        <div class="table">
            <ul class="tab">
                <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
            </ul>
            <!-- è¯­æ³• å­ç»„件通过 this.$emit +传入方法名 è°ƒç”¨çˆ¶ç»„件方法 ä¾‹å¦‚  this.$emit(selectAllByOne) å°±éœ€åœ¨çˆ¶ç»„件声明并传入  @selectAllByOne="selectAllByOne"-->
            <ValueTable ref="ValueTable" :url="$api.insOrder.selectInsOrderParameter" :componentData="componentData"
                :key="upIndex" style="height: calc(100% - 44px)" @selectAllByOne="selectAllByOne"
                @handleDataLook="handleDataLook" @download="download" @handleVerify="handleVerify" @handlEquash="handlEquash"
                @handleIssued="handleIssued" />
        </div>
        <!-- å®¡æ ¸ -->
        <el-dialog title="下单审核" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose">
            <p style="font-size:16px;color:#333333" v-if="!isPass">委托编号<span
                    style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
            <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
                <el-form-item label="请输入样品库位号:">
                    <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
                </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
                <el-row v-if="!isPass">
                    <el-button @click="handleClose">退 å›ž</el-button>
                    <el-button type="primary" @click="submitForm" :loading="upLoad">通 è¿‡</el-button>
                </el-row>
                <el-row v-else>
                    <el-button @click="handleClose">返 å›ž</el-button>
                    <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®š</el-button>
                </el-row>
            </span>
        </el-dialog>
        <!-- æ’¤é”€ -->
        <el-dialog title="下单撤销" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose">
            <p style="font-size:16px;color:#333333" v-if="!isQuash">委托编号<span
                    style="color:#34BD66">ZTMS2023071001</span>的信息是否撤销</p>
            <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
                <el-form-item label="请输入撤销原因:">
                    <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
                </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
                <el-row v-if="!isQuash">
                    <el-button @click="handleClose">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®š</el-button>
                </el-row>
                <el-row v-else>
                    <el-button @click="handleClose">返 å›ž</el-button>
                    <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®š</el-button>
                </el-row>
            </span>
        </el-dialog>
        <!-- ä¸‹å‘ -->
        <el-dialog title="检验下发" :visible.sync="issuedDialogVisible" width="30%" :before-close="handleClose">
            <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm">
                <el-form-item label="约定时间:">
                    <el-date-picker style="width:100%" format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="formData.downTime"
                        type="date" size="small" placeholder="选择时间">
                    </el-date-picker>
                </el-form-item>
                <el-form-item label="指派人员:">
                    <el-select v-model="formData.equipmentManager" 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>
                </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
                <el-row>
                    <el-button @click="handleClose">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®š</el-button>
                </el-row>
            </span>
        </el-dialog>
        <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="70%" :before-close="handleClose">
            <div style="height: 70vh;overflow-y: auto;">
                <ValueTable ref="ValueTableDataLook" :url="$api.deviceScope.selectDeviceParameter"
                    :componentData="componentDataDataLook" :key="upIndex" />
            </div>
        </el-dialog>
    </div>
</template>
<script>
    import ValueTable from '../tool/value-table.vue'
    import Add from '../do/b1-ins-order/add.vue'
    export default {
        components: {
            ValueTable
            ValueTable,
            Add
        },
        data() {
            return {
@@ -313,6 +320,7 @@
                    },
                ],
                tabIndex: 0,
                active: 1
            }
        },
        mounted() {
@@ -415,7 +423,9 @@
                })
            },
            // ä¸‹å•
            playOrder() {},
            playOrder() {
                this.active = 1
            },
            handleTab(m, i) {
                this.tabIndex = i;
                this.componentData.entity.state = m.value
@@ -423,4 +433,4 @@
            }
        }
    }
</script>
</script>
src/components/view/b2-standard-template.vue
@@ -95,7 +95,7 @@
                        font: '编辑',
                        type: 'text',
                        method: 'doDiy',
                        field: ['createUserName', 'updateUserName']
                        field: ['createUserName', 'updateUserName','thing']
                    }, {
                        id: 'delete',
                        font: '删除',
@@ -172,6 +172,7 @@
            closed(){
                this.loading = true
                let data = luckysheet.toJson()
                console.log(data);
                this.$axios.post(this.$api.StandardTemplate.upStandardTemplate,{
                    id: this.row.id,
                    thing: JSON.stringify(data),
@@ -199,4 +200,4 @@
            }
        }
    }
</script>
</script>
src/components/view/b2-standard.vue
@@ -151,10 +151,10 @@
                <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border
                    @selection-change="handleSelectionChange">
                    <el-table-column type="selection" width="65"></el-table-column>
                    <el-table-column prop="inspectionItem" label="检验项" 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="检验项子项" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="laboratory" label="实验室" width="120" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="sonLaboratory" label="子实验室" width="130" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="unit" label="计量单位" width="100" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="price" label="单价" width="100" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="manHour" label="工时" width="80" show-overflow-tooltip></el-table-column>
@@ -208,9 +208,7 @@
                        <span class="required-span">* </span>样品名称:
                    </el-col>
                    <el-col :span="16" :offset="1">
                        <el-select v-model="addOb.sample" size="small" style="width: 100%;" clearable>
                            <el-option v-for="(a, ai) in sample" :key="ai" :value="a.value" :label="a.label"></el-option>
                        </el-select>
                        <el-input v-model="addOb.sample" placeholder="请输入样品名称" clearable size="small"></el-input>
                    </el-col>
                </el-row>
                <el-row style="line-height: 50px;">
@@ -335,7 +333,7 @@
            this.selectEnumByCategoryForFactory()
            this.selectStandardTreeList()
            this.obtainItemParameterList()
            this.selectEnumByCategoryForsampleType()
            // this.selectEnumByCategoryForsampleType()
            this.selectTestObjectByName()
            this.selectStandardMethods()
            this.selectEnumByCategoryForDevice()
@@ -448,7 +446,7 @@
            },
            selectEnumByCategoryForSpecial() {
                this.$axios.post(this.$api.enums.selectEnumByCategory, {
                    category: "特殊标识"
                    category: "是否"
                }).then(res => {
                    this.componentData.tagField.bsm.select = res.data
                })
@@ -488,7 +486,7 @@
                            value: a.specimenName
                        })
                    })
                    this.sample = data
                    this.sampleType = data
                })
            },
            selectStandardMethods() {
src/components/view/data-reporting.vue
ÎļþÒÑɾ³ý
src/view/index.vue
@@ -163,7 +163,7 @@
    .tag>.el-icon-s-unfold,
    .el-icon-s-fold,
    .el-icon-delete {
    .tag>.el-icon-delete {
        font-size: 16px;
        cursor: pointer;
        margin: 0 8px;
@@ -325,7 +325,8 @@
            <el-col :span="24">
                <el-card :body-style="{padding: '6px'}">
                    <ul>
                        <li style="color: red;" @click="removeTab(activeIndex)"><i class="el-icon-close"></i>关闭</li>
                        <li @click="removeTab(activeIndex)"><i class="el-icon-close"></i>关闭</li>
                        <li @click="allDel"><i class="el-icon-delete"></i>关闭所有</li>
                        <el-divider></el-divider>
                        <li @click="refreshTable"><i class="el-icon-refresh"></i>刷新</li>
                    </ul>
static/js/menu.js
@@ -18,7 +18,7 @@
            v: "检验下单",
            i: "font icon-erjidaohang",
            u: "b1-inspection-order",
            p: ""
            p: "selectInsOrderParameter"
        }, {
            v: "检验任务",
            i: "font icon-erjidaohang",