Sfoglia il codice sorgente

试验材料取样

iZaiZaiA 2 anni fa
parent
commit
854769bc97

+ 0 - 0
src/styles/tentative/detect/third.scss


+ 1 - 1
src/views/tasks/hc-data.vue

@@ -228,13 +228,13 @@ const queryTaskInfo = async (row) => {
 
 //确认审批
 const ConfirmApprovalClick = async () => {
-    debugger
     const formData = taskReviewForm.value
     if (formData.flag === 'NO' && !formData.comment) {
         window?.$message?.warning('请先输入审核意见')
     } else {
         SMSAuthLoading.value = true
         const {error, code, msg, data} = await checkFlowUserIsExistPfxFile({},false)
+        console.log(msg)
         //判断数据
         SMSAuthLoading.value = false
         if (!error && code === 200 && data === true) {

+ 474 - 14
src/views/tentative/detect/third.vue

@@ -1,30 +1,490 @@
 <template>
-    <div class="hc-layout-box">
-        外委检测
+    <div class="hc-page-layout-box">
+        <div class="hc-layout-left-box" :style="'width:' + leftWidth + 'px;'">
+            <div class="hc-project-box">
+                <div class="hc-project-icon-box">
+                    <HcIcon name="stack"/>
+                </div>
+                <div class="ml-2 project-name-box">
+                    <span class="text-xl text-cut project-alias">{{projectInfo['projectAlias']}}</span>
+                    <div class="text-xs text-cut project-name">{{projectInfo['name']}}</div>
+                </div>
+            </div>
+            <div class="hc-tree-box">
+                <el-scrollbar>
+                    <WbsTree :autoExpandKeys="treeAutoExpandKeys" :projectId="projectId" :contractId="contractId" isColor @nodeTap="wbsElTreeClick"/>
+                </el-scrollbar>
+            </div>
+            <!--左右拖动-->
+            <div class="horizontal-drag-line" @mousedown="onmousedown"/>
+        </div>
+        <div class="hc-page-content-box">
+            <HcCard :scrollbar="false" actionSize="lg">
+                <template #header>
+                    <HcTooltip keys="tentative_material_sampling_add">
+                        <el-button type="primary" hc-btn @click="addFormModalClick">
+                            <HcIcon name="add-circle"/>
+                            <span>新增</span>
+                        </el-button>
+                    </HcTooltip>
+                    <HcTooltip keys="tentative_material_sampling_edit">
+                        <el-button hc-btn @click="editFormModalClick">
+                            <HcIcon name="edit"/>
+                            <span>编辑</span>
+                        </el-button>
+                    </HcTooltip>
+                    <HcTooltip keys="tentative_material_sampling_copy">
+                        <el-button hc-btn @click="copyTableModalClick">
+                            <HcIcon name="file-copy-2"/>
+                            <span>复制</span>
+                        </el-button>
+                    </HcTooltip>
+                    <HcTooltip keys="tentative_material_sampling_del">
+                        <el-button hc-btn @click="delModalClick">
+                            <HcIcon name="delete-bin-2"/>
+                            <span>删除</span>
+                        </el-button>
+                    </HcTooltip>
+                </template>
+                <template #search>
+                    <div class="w-40">
+                        <el-select v-model="searchForm.user" placeholder="请选择送样人员" clearable>
+                            <el-option v-for="item in userData" :key="item.value" :label="item['label']" :value="item['value']"/>
+                        </el-select>
+                    </div>
+                    <div class="w-40 ml-2">
+                        <el-select v-model="searchForm.qualified" placeholder="请选择是否合格" clearable>
+                            <el-option v-for="item in qualifiedData" :key="item.value" :label="item['label']" :value="item['value']"/>
+                        </el-select>
+                    </div>
+                    <div class="w-64 ml-2">
+                        <HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate"/>
+                    </div>
+                    <div class="w-72 ml-2">
+                        <el-input v-model="searchForm.queryValue" placeholder="请输入报告编号、委托编号" clearable @keyup="keyUpEvent"/>
+                    </div>
+                    <div class="ml-2">
+                        <el-button type="primary" @click="searchClick">
+                            <HcIcon name="search-2"/>
+                            <span>搜索</span>
+                        </el-button>
+                    </div>
+                </template>
+                <HcTable ref="tableRef" :column="tableColumn" :datas="tableData" :loading="tableLoading" isCheck @selection-change="tableSelection"/>
+                <template #action>
+                    <HcPages :pages="searchForm" @change="pageChange"/>
+                </template>
+            </HcCard>
+        </div>
+
+        <!--新增/编辑-->
+        <HcDialog :show="addEditFormModal" title="新增/编辑 样品信息" widths="50rem" isRowFooter @close="addEditFormModalClose">
+            <el-form ref="addEditFormRef" :model="addEditFormModel" :rules="addEditFormRules" label-width="auto" size="large">
+                <div class="hc-form-item">
+                    <el-form-item label="样品名称" prop="key1">
+                        <el-input v-model="addEditFormModel.key1"/>
+                    </el-form-item>
+                    <el-form-item label="进场日期" prop="key9">
+                        <el-date-picker type="date" v-model="addEditFormModel.key9" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
+                    </el-form-item>
+                </div>
+                <div class="hc-form-item">
+                    <el-form-item label="样品编号" prop="key3">
+                        <el-input v-model="addEditFormModel.key3"/>
+                    </el-form-item>
+                    <el-form-item label="取样日期" prop="key4">
+                        <el-date-picker type="date" v-model="addEditFormModel.key4" class="block" value-format="YYYY-MM-DD" :clearable="false"/>
+                    </el-form-item>
+                </div>
+                <div class="hc-form-item">
+                    <el-form-item label="规格型号" prop="key5">
+                        <el-input v-model="addEditFormModel.key5"/>
+                    </el-form-item>
+                    <el-form-item label="取样地点" prop="key6">
+                        <el-input v-model="addEditFormModel.key6"/>
+                    </el-form-item>
+                </div>
+                <div class="hc-form-item">
+                    <el-form-item label="试样数量" prop="key7">
+                        <el-input v-model="addEditFormModel.key7"/>
+                    </el-form-item>
+                    <el-form-item label="是否外委" prop="key8">
+                        <el-radio-group v-model="addEditFormModel.key8" size="large">
+                            <el-radio :label="1">是</el-radio>
+                            <el-radio :label="2">否</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                </div>
+                <div class="hc-form-item">
+                    <el-form-item label="代表数量" prop="key9">
+                        <el-input v-model="addEditFormModel.key9"/>
+                    </el-form-item>
+                    <el-form-item label="供应商" prop="key10">
+                        <el-input v-model="addEditFormModel.key10"/>
+                    </el-form-item>
+                </div>
+                <div class="hc-form-item">
+                    <el-form-item label="计算单位" prop="key11">
+                        <el-input v-model="addEditFormModel.key11"/>
+                    </el-form-item>
+                    <el-form-item label="生产批号" prop="key12">
+                        <el-input v-model="addEditFormModel.key12"/>
+                    </el-form-item>
+                </div>
+                <div class="hc-form-item">
+                    <el-form-item label="取样人" prop="key13">
+                        <el-input v-model="addEditFormModel.key13"/>
+                    </el-form-item>
+                    <el-form-item label="拟用部位" prop="key14">
+                        <el-input v-model="addEditFormModel.key14"/>
+                    </el-form-item>
+                </div>
+                <el-form-item label="样品描述" prop="key15">
+                    <el-input v-model="addEditFormModel.key15"/>
+                </el-form-item>
+            </el-form>
+            <template #leftRowFooter>
+                <HcTooltip keys="tentative_material_sampling_links">
+                    <el-button type="primary" hc-btn @click="linksApproachModalClick">
+                        <HcIcon name="links"/>
+                        <span>关联进场材料</span>
+                    </el-button>
+                </HcTooltip>
+            </template>
+            <template #rightRowFooter>
+                <el-button size="large" @click="addEditFormModalClose">
+                    <HcIcon name="close"/>
+                    <span>取消</span>
+                </el-button>
+                <el-button type="primary" hc-btn :loading="addEditFormLoading" @click="addEditFormClick">
+                    <HcIcon name="check"/>
+                    <span>确认</span>
+                </el-button>
+            </template>
+        </HcDialog>
+
+        <!--关联进场材料-->
+        <HcDialog :show="linksApproachModal" title="关联进场材料信息" widths="60%" isTable saveText="确认" @close="linksApproachModalClose" @save="linksApproachModalSave">
+            <HcTable :column="linksApproachTableColumn" :datas="linksApproachTableData" :loading="linksApproachTableLoading" :isIndex="false">
+                <template #action="{row}">
+                    <HcTooltip keys="tentative_material_approach_annex">
+                        <el-button type="primary" size="small" plain @click="linksApproachRow(row)">关联</el-button>
+                    </HcTooltip>
+                </template>
+            </HcTable>
+        </HcDialog>
+
+        <!--复制样品登记信息-->
+        <HcDialog :show="copyTableModal" title="复制样品登记信息" widths="60rem" isTable :loading="copyTableLoading" @close="copyTableModalClose" @save="copyTableClick">
+            <HcTable :column="copyTableColumn" :datas="copyTableData">
+                <template #key1="{row}">
+                    <el-input v-model="row.key1" placeholder="请输入材料编号"/>
+                </template>
+                <template #action="{row}">
+                    <el-button type="danger" size="small" plain>删除</el-button>
+                </template>
+            </HcTable>
+        </HcDialog>
+
+        <!--导入-->
+        <HcDialog :show="importModal" title="导入" widths="38rem" isRowFooter @close="importModalClose">
+            123456
+            <template #leftRowFooter>
+                <el-button size="large">
+                    <HcIcon name="download-2"/>
+                    <span>下载模板</span>
+                </el-button>
+            </template>
+            <template #rightRowFooter>
+                <el-button size="large" @click="importModalClose">
+                    <HcIcon name="close"/>
+                    <span>取消导入</span>
+                </el-button>
+                <el-button type="primary" hc-btn :loading="importModalLoading" @click="importModalYesClick">
+                    <HcIcon name="folder-upload"/>
+                    <span>确认导入</span>
+                </el-button>
+            </template>
+        </HcDialog>
+
     </div>
 </template>
 
 <script setup>
-import {ref,watch,onMounted} from "vue";
-import {useRouter, useRoute} from 'vue-router'
+import {ref, watch, onMounted} from "vue";
 import {useAppStore} from "~src/store";
+import WbsTree from "../../data-fill/components/WbsTree.vue"
+import {getStoreData, setStoreData} from '~src/utils/storage'
 
-//初始变量
-const router = useRouter()
-const useRoutes = useRoute()
+//变量
 const useAppState = useAppStore()
-//const {getObjValue, getArrValue} = isType()
-
-//全局变量
 const projectId = ref(useAppState.getProjectId);
 const contractId = ref(useAppState.getContractId);
+const projectInfo = ref(useAppState.getProjectInfo);
+const isCollapse = ref(useAppState.getCollapse)
 
-</script>
+//监听
+watch(() => [
+    useAppState.getCollapse
+], ([Collapse]) => {
+    isCollapse.value = Collapse
+})
 
-<style lang="scss" scoped>
+//自动展开缓存
+const treeAutoExpandKeys = ref(getStoreData('wbsTreeExpandKeys') || [])
+
+//渲染完成
+onMounted(() => {
+
+})
+
+const userData = ref([
+    {label: 'xxx', value: '1'}
+])
+
+const qualifiedData = ref([
+    {label: '是', value: '1'}
+])
+
+//搜索表单
+const searchForm = ref({user: null, qualified: null, betweenTime: null, queryValue: null, current: 1, size: 20, total: 0})
+
+
+//树相关的变量
+const primaryKeyId = ref('')
+const nodeItemInfo = ref({})
+const nodeDataInfo = ref({})
+
+//树被点击
+const wbsElTreeClick = ({node, data, keys}) => {
+    nodeItemInfo.value = node
+    nodeDataInfo.value = data
+    primaryKeyId.value = data['primaryKeyId'] || ''
+    //缓存自动展开
+    treeAutoExpandKeys.value = keys
+    setStoreData('wbsTreeExpandKeys',keys)
+    //改变搜索表单数据
+    //searchForm.value.wbsId = data['contractIdRelation'] ? data['id'] : data['primaryKeyId']
+    //searchForm.value.contractIdRelation = data['contractIdRelation']
+    searchForm.value.current = 1;
+    getTableData()
+}
+
+//日期时间被选择
+const betweenTime = ref(null)
+const betweenTimeUpdate = ({arr,query}) => {
+    betweenTime.value = arr
+    searchForm.value.betweenTime = query
+}
+
+//回车搜索
+const keyUpEvent = (e) => {
+    if (e.key === "Enter") {
+        searchForm.value.current = 1;
+        getTableData()
+    }
+}
+
+//搜索
+const searchClick = () => {
+    searchForm.value.current = 1;
+    getTableData()
+}
+
+//分页被点击
+const pageChange = ({current, size}) => {
+    searchForm.value.current = current
+    searchForm.value.size = size
+    getTableData()
+}
+
+//表格数据
+const tableRef = ref(null)
+const tableColumn = ref([
+    {key:'key1', name: '取样名称'},
+    {key:'key2', name: '取样日期'},
+    {key:'key3', name: '样品编号'},
+    {key:'key4', name: '规格型号'},
+    {key:'key5', name: '试样数量'},
+    {key:'key6', name: '计算单位'},
+    {key:'key7', name: '拟用部位'},
+    {key:'key8', name: '代表数量'},
+    {key:'key9', name: '取样人'}
+])
+
+//获取数据
+const tableLoading = ref(false)
+const tableData = ref([
+    {}
+])
+const getTableData = async () => {
+
+}
+
+//多选
+const tableCheckedKeys = ref([]);
+const tableSelection = (rows) => {
+    tableCheckedKeys.value = rows.filter((item) => {
+        return (item??'') !== '';
+    })
+}
 
-</style>
 
-<style lang="scss">
+//新增/编辑 材料进场
+const addEditFormModal = ref(false)
+const addFormModalClick = () => {
+    addEditFormModal.value = true
+}
+const editFormModalClick = () => {
+    addEditFormModal.value = true
+}
+const addEditFormModalClose = () => {
+    addEditFormModal.value = false
+}
 
+//新增/编辑 表单
+const addEditFormRef = ref(null)
+const addEditFormModel = ref({})
+const addEditFormRules = {
+    key1: {
+        required: true,
+        trigger: 'blur',
+        message: "请输入"
+    },
+    key3: {
+        required: true,
+        trigger: 'blur',
+        message: "请输入"
+    },
+}
+
+//新增/编辑 保存
+const addEditFormLoading = ref(false)
+const addEditFormClick = () => {
+
+}
+
+//复制
+const copyTableModal = ref(false)
+
+const copyTableModalClick = () => {
+    copyTableModal.value = true
+}
+
+//复制表格
+const copyTableColumn = ref([
+    {key:'key3', name: '样品名称'},
+    {key:'key1', name: '样品编号'},
+    {key:'action', name: '操作', width: 100},
+])
+const copyTableData = ref([
+    {key3: '名称', key1: '编号...'},
+    {key3: '名称1', key1: '编号1...'},
+])
+
+const copyTableModalClose = () => {
+    copyTableModal.value = false
+}
+
+//复制 保存
+const copyTableLoading = ref(false)
+const copyTableClick = () => {
+    copyTableModal.value = false
+}
+
+//删除
+const delModalClick = () => {
+    window?.$messageBox?.alert('请谨慎考虑后,确认是否需要删除?', '删除提醒', {
+        showCancelButton: true,
+        confirmButtonText: '确认删除',
+        cancelButtonText: '取消',
+        type: 'warning',
+        callback: (action) => {
+            if (action === 'confirm') {
+                //removeContractTreeNode()
+            }
+        }
+    })
+}
+
+//导入
+const importModal = ref(false)
+const importModalClick = () => {
+    importModal.value = true
+}
+
+//确认导入
+const importModalLoading = ref(false)
+const importModalYesClick = () => {
+    importModal.value = false
+}
+
+//关闭导入
+const importModalClose = () => {
+    importModal.value = false
+}
+
+
+//关联进场材料
+const linksApproachModal = ref(false)
+const linksApproachModalClick = (row) => {
+    linksApproachModal.value = true
+}
+
+//关联进场材料数据
+const linksApproachTableColumn = ref([
+    {key:'key1', name: '材料编号'},
+    {key:'key2', name: '进场日期'},
+    {key:'key3', name: '材料名称'},
+    {key:'key4', name: '材料类型'},
+    {key:'key5', name: '规格型号'},
+    {key:'key6', name: '供应商单位'},
+    {key:'key7', name: '拟用部位'},
+    {key:'key8', name: '记录人'},
+    {key:'action', name: '操作', width: 100, fixed: 'right', align: 'center'},
+])
+const linksApproachTableData = ref([])
+const linksApproachTableLoading = ref(false)
+
+//关联
+const linksApproachRow = (row) => {
+
+}
+
+const linksApproachModalSave = () => {
+
+}
+
+//关闭关联进场材料
+const linksApproachModalClose = () => {
+    linksApproachModal.value = false
+}
+
+
+//拼接ID
+const rowsToId = (rows) => {
+    return rows.map((obj) => {
+        return obj.id;
+    }).join(",")
+}
+
+//左右拖动,改变树形结构宽度
+const leftWidth = ref(382);
+const onmousedown = () => {
+    const leftNum = isCollapse.value ? 142 : 272
+    document.onmousemove = (ve) => {
+        let diffVal = ve.clientX - leftNum;
+        if(diffVal >= 310 && diffVal <= 900) {
+            leftWidth.value = diffVal;
+        }
+    }
+    document.onmouseup = () => {
+        document.onmousemove = null;
+        document.onmouseup = null;
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "../../../styles/tentative/detect/third.scss";
 </style>

+ 1 - 1
src/views/tentative/material/sampling.vue

@@ -59,7 +59,7 @@
                     </HcTooltip>
                 </template>
                 <template #search>
-                    <div class="w-64 ml-2">
+                    <div class="w-64">
                         <HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate"/>
                     </div>
                     <div class="w-72 ml-2">