Explorar o código

新主题,先不要发版

ZaiZai hai 1 ano
pai
achega
c1e8e0ade1

+ 2 - 2
src/components/dialog/SortNodeDialog.vue

@@ -1,6 +1,6 @@
 <template>
     <!-- 调整节点排序 -->
-    <HcDialog :show="nodeSortModel" title="调整排序" widths="80vw" is-table is-row-footer @close="nodeSortModalClose">
+    <hc-new-dialog v-model="nodeSortModel" title="调整排序" widths="80vw" is-table is-row-footer @close="nodeSortModalClose">
         <el-alert title="可拖动排序,也可在后面点击图标,切换排序" type="warning" :closable="false" />
         <div class="hc-table-h">
             <HcTable
@@ -31,7 +31,7 @@
                 <span>确认</span>
             </el-button>
         </template>
-    </HcDialog>
+    </hc-new-dialog>
 </template>
 
 <script setup>

+ 35 - 39
src/global/components/hc-report-experts/index.vue

@@ -2,21 +2,21 @@
     <div class="hc-report-modal-form-item">
         <div class="hc-form-item-btn">
             <el-button type="primary" size="default" @click="tableExpertsAddClick">
-                <HcIcon name="add"/>
+                <HcIcon name="add" />
                 <span>添加</span>
             </el-button>
         </div>
-        <div class="hc-table-ref-box no-border" v-if="tableExpertsData.length > 0">
+        <div v-if="tableExpertsData.length > 0" class="hc-table-ref-box no-border">
             <el-table :data="tableExpertsData" border style="width: 100%">
-                <el-table-column prop="name" label="姓名" align="center" width="120"/>
-                <el-table-column prop="position" label="职位" align="center" width="130"/>
+                <el-table-column prop="name" label="姓名" align="center" width="120" />
+                <el-table-column prop="position" label="职位" align="center" width="130" />
                 <el-table-column prop="group" label="是否为组长" align="center" width="120">
                     <template #default="scope">
-                        {{arrKeyValue(groupSelectData, 'value', 'label', scope.row.group)}}
+                        {{ arrKeyValue(groupSelectData, 'value', 'label', scope.row.group) }}
                     </template>
                 </el-table-column>
-                <el-table-column prop="idCard" label="身份证" align="center"/>
-                <el-table-column prop="phone" label="手机号" align="center" width="140"/>
+                <el-table-column prop="idCard" label="身份证" align="center" />
+                <el-table-column prop="phone" label="手机号" align="center" width="140" />
                 <el-table-column prop="action" label="操作" align="center" width="140">
                     <template #default="scope">
                         <el-button type="primary" size="small" @click="tableExpertsEditClick(scope)">编辑</el-button>
@@ -27,42 +27,43 @@
         </div>
     </div>
 
-    <!--新增编辑表单-->
-    <HcDialog :show="isInfoModal" :title="`${isModalType}专家信息`" widths="26rem" @close="onInfoModalClose" @save="onInfoModalSave" append-to-body>
+    <!-- 新增编辑表单 -->
+    <hc-new-dialog v-model="isInfoModal" :title="`${isModalType}专家信息`" widths="26rem" @close="onInfoModalClose" @save="onInfoModalSave">
         <el-form ref="formRef" :model="formModel" :rules="formRules" label-width="auto" size="large">
             <el-form-item label="姓名" prop="name">
-                <el-input v-model="formModel.name" placeholder="请输入姓名"/>
+                <el-input v-model="formModel.name" placeholder="请输入姓名" />
             </el-form-item>
             <el-form-item label="职位" prop="position">
-                <el-input v-model="formModel.position" placeholder="请输入职位"/>
+                <el-input v-model="formModel.position" placeholder="请输入职位" />
             </el-form-item>
             <el-form-item label="组长" prop="group">
                 <el-select v-model="formModel.group" block>
-                    <el-option v-for="item in groupSelectData" :label="item.label" :value="item.value"/>
+                    <el-option v-for="item in groupSelectData" :label="item.label" :value="item.value" />
                 </el-select>
             </el-form-item>
             <el-form-item label="身份证" prop="idCard">
-                <el-input v-model="formModel.idCard" placeholder="请输入身份证"/>
+                <el-input v-model="formModel.idCard" placeholder="请输入身份证" />
             </el-form-item>
             <el-form-item label="手机号" prop="phone">
-                <el-input v-model="formModel.phone" placeholder="请输入手机号"/>
+                <el-input v-model="formModel.phone" placeholder="请输入手机号" />
             </el-form-item>
         </el-form>
-    </HcDialog>
-
+    </hc-new-dialog>
 </template>
 
 <script setup>
-import {onMounted, ref, watch} from "vue";
-import {getArrValue, deepClone, arrKeyValue, formValidate, isIdCard, isPhone} from "js-fast-way"
+import { onMounted, ref, watch } from 'vue'
+import { arrKeyValue, deepClone, formValidate, getArrValue, isIdCard, isPhone } from 'js-fast-way'
 
 const props = defineProps({
     modelValue: {
         type: Array,
-        default: () => ([])
+        default: () => ([]),
     },
 })
 
+//事件
+const emit = defineEmits(['change', 'update:modelValue'])
 //变量
 const tableExpertsData = ref([])
 const isInfoModal = ref(false)
@@ -76,38 +77,38 @@ onMounted(() => {
 
 //监听
 watch(() => [
-    props.modelValue
+    props.modelValue,
 ], ([val]) => {
     tableExpertsData.value = getArrValue(val)
 })
 
 //是否为组件
 const groupSelectData = [
-    {label: '是', value: 1},
-    {label: '否', value: 2}
+    { label: '是', value: 1 },
+    { label: '否', value: 2 },
 ]
 
 //表单
 const formRef = ref(null)
 const formModel = ref({
-    name: '', position: '', group: '', idCard: '', phone: ''
+    name: '', position: '', group: '', idCard: '', phone: '',
 })
 
 const formRules = ref({
     name: {
         required: true,
-        trigger: "blur",
-        message: "请输入姓名"
+        trigger: 'blur',
+        message: '请输入姓名',
     },
     position: {
         required: true,
-        trigger: "blur",
-        message: "请输入职位"
+        trigger: 'blur',
+        message: '请输入职位',
     },
     group: {
         required: true,
-        trigger: "blur",
-        message: "请选择是否为组长"
+        trigger: 'blur',
+        message: '请选择是否为组长',
     },
     idCard: {
         required: true,
@@ -120,7 +121,7 @@ const formRules = ref({
                 callback()
             }
         },
-        trigger: 'blur'
+        trigger: 'blur',
     },
     phone: {
         required: true,
@@ -133,15 +134,11 @@ const formRules = ref({
                 callback()
             }
         },
-        trigger: 'blur'
+        trigger: 'blur',
     },
 })
 
 
-//事件
-const emit = defineEmits(['change', 'update:modelValue'])
-
-
 //添加专家信息
 const tableExpertsAddClick = () => {
     formModel.value = {}
@@ -151,7 +148,7 @@ const tableExpertsAddClick = () => {
 }
 
 //编辑专家信息
-const tableExpertsEditClick = ({row, $index}) => {
+const tableExpertsEditClick = ({ row, $index }) => {
     formModel.value = deepClone(row)
     tableIndex.value = $index
     isModalType.value = '编辑'
@@ -181,8 +178,8 @@ const onInfoModalClose = () => {
 }
 
 //删除专家信息
-const tableExpertsDelClick = ({$index}) => {
-    tableExpertsData.value.splice($index, 1);
+const tableExpertsDelClick = ({ $index }) => {
+    tableExpertsData.value.splice($index, 1)
     setEmitData()
 }
 
@@ -191,7 +188,6 @@ const setEmitData = () => {
     emit('update:modelValue', tableExpertsData.value)
     emit('change', tableExpertsData.value)
 }
-
 </script>
 
 <style lang="scss" scoped>

+ 6 - 6
src/views/archives/components/meta-info.vue

@@ -1,5 +1,5 @@
 <template>
-    <HcDialog :show="showModal" title="元数据信息" is-to-body is-table is-row-footer widths="62rem" @close="cancelClick">
+    <hc-new-dialog v-model="showModal" title="元数据信息" is-table is-row-footer widths="62rem" @close="cancelClick">
         <metaTable v-if="metaDataTable.length > 0" :is-edit="isEdit" :loading="tabeloading" :meta-data-table="metaDataTable" @changemeDataTable="changemeDataTable" />
         <HcNoData v-if="metaDataTable.length == 0" />
         <template #rightRowFooter>
@@ -24,7 +24,7 @@
                 </el-button>
             </div>
         </template>
-    </HcDialog>
+    </hc-new-dialog>
 </template>
 
 <script setup>
@@ -75,7 +75,7 @@ const size = ref('70%')
 //监听
 watch(() => [
     props.show,
-   
+
 ], ([show, loading, user]) => {
     showModal.value = show
     isLoading.value = loading
@@ -106,7 +106,7 @@ const changemeDataTable = (val)=>{
     updateInfo.value = val
 }
 
-//返回  
+//返回
 const gobackClick = () => {
     isEdit.value = true
       emits('upshowModal', false)
@@ -133,9 +133,9 @@ const saveClick = async () => {
     if (!error && code === 200) {
         window.$message.success(msg)
         emits('getTableData')
-   
+
     } else {
-     
+
     }
     emits('upshowModal', false)
 }

+ 2 - 5
src/views/archives/meta-data.vue

@@ -43,11 +43,8 @@
                         </div>
                         <div class="hc-file-table-box">
                             <HcTable
-                                ref="tableFileRef"
-                                :column="innertableColumn"
-                                :datas="intableData"
-                                :loading="intableLoading"
-                                :ui="hoverHand ? 'hover-hand' : ''"
+                                ref="tableFileRef" :column="innertableColumn" :datas="intableData" :loading="intableLoading"
+                                :ui="hoverHand ? 'hover-hand' : ''" is-new :index-style="{ width: 60 }"
                                 @row-click="tableFileRowClick"
                             >
                                 <template #action="{ row, index }">

+ 4 - 7
src/views/archives/tuning.vue

@@ -149,10 +149,7 @@
             </hc-new-card>
         </div>
         <!-- 跨目录移动 -->
-        <HcDialog
-            :show="movesModal" title="跨目录移动" widths="990px" is-table :loading="movesModalLoading"
-            @close="movesModalClose" @save="movesModalSave"
-        >
+        <hc-new-dialog v-model="movesModal" title="跨目录移动" widths="990px" is-table :loading="movesModalLoading" @close="movesModalClose" @save="movesModalSave">
             <div class="hc-moves-transfer-box">
                 <div class="hc-moves-transfer-panel">
                     <div class="panel-header">
@@ -202,9 +199,9 @@
                     </div>
                 </div>
             </div>
-        </HcDialog>
+        </hc-new-dialog>
         <!-- 调整排序 -->
-        <HcDialog :show="sortModal" title="调整排序" widths="980px" is-table is-row-footer @close="sortModalClose">
+        <hc-new-dialog v-model="sortModal" title="调整排序" widths="980px" is-table is-row-footer @close="sortModalClose">
             <el-alert title="可拖动排序,也可在后面点击图标,切换排序" type="error" :closable="false" />
             <div class="hc-table-h">
                 <HcTable
@@ -238,7 +235,7 @@
                     @change="sortPageChange"
                 />
             </template>
-        </HcDialog>
+        </hc-new-dialog>
 
         <!-- 编辑案卷信息 -->
         <el-dialog v-model="showUploadModal" :title="editTitle" width="80vw" class="hc-modal-border hc-modal-table">

+ 336 - 356
src/views/custody/testing.vue

@@ -1,325 +1,317 @@
 <template>
-     <div class="hc-page-box" style="backgroundcolor:white">
-
-              <HcCard1 scrollbar >
-
-                  <div class="bannerbox" :style="`background-image: url(${testBgbig});`"  v-if="isStatus">
-                      <div class="infobox">
-                          <el-row>
-                            <el-col :span="20">
-                                <div >
-                                    [1]文书档案检测一般要求:DA/T 70-2018
-                                </div>
-                            </el-col>
-                              <!-- <el-col :span="3" :offset="1"><div  style="text-align:right">历史报告</div></el-col> -->
-                              <el-col :span="3" :offset="1">
-                                <div  style="text-align:right">
-                                    <el-tooltip :visible="visible" effect="light"  >
-                                        <template #content >
-                                          <div class="reportPop" v-if="historyRportlist.length>0" v-loading="reportLoading">
-                                            <div class="history_box" v-for="item in historyRportlist">
+    <div class="hc-page-box" style="backgroundcolor:white">
+        <HcCard1 scrollbar>
+            <div v-if="isStatus" class="bannerbox" :style="`background-image: url(${testBgbig});`">
+                <div class="infobox">
+                    <el-row>
+                        <el-col :span="20">
+                            <div>
+                                [1]文书档案检测一般要求:DA/T 70-2018
+                            </div>
+                        </el-col>
+                        <!-- <el-col :span="3" :offset="1"><div  style="text-align:right">历史报告</div></el-col> -->
+                        <el-col :span="3" :offset="1">
+                            <div style="text-align:right">
+                                <el-tooltip :visible="visible" effect="light">
+                                    <template #content>
+                                        <div v-if="historyRportlist.length > 0" v-loading="reportLoading" class="reportPop">
+                                            <div v-for="item in historyRportlist" class="history_box">
                                                 <el-link type="primary" @click="viewHpdf(item)">{{ item.reportName }}</el-link>
                                                 <span class="m15">{{ item.examiningTime }}</span>
-
                                             </div>
-                                          </div>
-                                          <div v-else>暂无数据</div>
-                                        </template>
-                                        <el-button  type="primary"  @click="showReport">
-                                            历史报告
-                                        </el-button>
-
-                                    </el-tooltip>
-                                </div>
-                            </el-col>
-                         </el-row>
-                        <el-row>
-                            <el-col :span="24">
-                                <div >
-                                    [2]电子档案"四性"检测要求及其实现方法[j].浙江档案
-                                </div>
-                            </el-col>
-
-                         </el-row>
-                        <el-row>
-                            <el-col :span="24">
-                                <div >
-                                   制定系统电子文件归档真实性、完整性、可用性、安全性检测服务
-                                </div>
-                            </el-col>
-
-                         </el-row>
-                      </div>
-                           <div class="circlebox" @click="detection" >
-                               <span v-loading="detectionLoad"> 一键检测</span>
+                                        </div>
+                                        <div v-else>暂无数据</div>
+                                    </template>
+                                    <el-button type="primary" @click="showReport">
+                                        历史报告
+                                    </el-button>
+                                </el-tooltip>
                             </div>
-                  </div>
-
-                  <div class="bannerbox " :style="`background-image: url(${testBgsamll});  aspect-ratio: 1993/468;`" v-if="!isStatus">
-                      <div class="infobox">
-                          <el-row >
-                            <el-col :span="20">
-                                <div >
-                                    [1]文书档案检测一般要求:DA/T 70-2018
-                                </div>
-                            </el-col>
-                            <el-col :span="3" :offset="1">
-                                <div  style="text-align:right">
-                                    <el-tooltip :visible="visible" effect="light"  >
-                                                <template #content >
-                                                    <div class="reportPop" v-if="historyRportlist.length>0" v-loading="reportLoading">
-                                                        <div class="history_box" v-for="item in historyRportlist">
-                                                            <el-link type="primary" @click="viewHpdf(item)">{{ item.reportName }}</el-link>
-                                                            <span class="m15">{{ item.examiningTime }}</span>
-
-                                                        </div>
-                                                    </div>
-                                                    <div v-else>暂无数据</div>
-                                                </template>
-                                                <el-button  type="primary"  @click="showReport">
-                                                    历史报告
-                                                </el-button>
-
-                                    </el-tooltip>
-                                </div>
-                          </el-col>
-
-                         </el-row>
-                        <el-row>
-                            <el-col :span="24">
-                                <div >
-                                    [2]电子档案"四性"检测要求及其实现方法[j].浙江档案
-                                </div>
-                            </el-col>
-
-                         </el-row>
-                        <el-row>
-                            <el-col :span="24">
-                                <div >
-                                   制定系统电子文件归档真实性、完整性、可用性、安全性检测服务
-                                </div>
-                            </el-col>
-
-                         </el-row>
-                      </div>
-
-                             <el-tooltip
-                                class="box-item"
-                                effect="light"
-                                content="系统正在检测运行中,请勿终止操作"
-                                placement="right-start"
-                                :visible="activeIndex==2||activeIndex==3"
-                            >
-                                <div class="circlebox circlebox2" v-if="activeIndex===4">
-                                    <span>100%</span>
-                                </div>
-                               <div class="circlebox circlebox1" v-else>
-                                    <span>{{ statusPercent }}</span>
-                                </div>
-
-                            </el-tooltip>
-                  </div>
-
-                  <div class="statusbox"   v-if="isStatus">
-                      <div class="statusboxitem" :style="`background-image: url(${bgColor});`">
-                          <div class="statusboxitem_top">
-                             <div  class="statusboxitem_top_first">
-
-                                <div style=" font-size: 5.25rem;color :white;">
-                                   <i class="ri-checkbox-multiple-line"></i>
-                                </div>
-                                  <div class="title">
-                                      真实性检测
-                                  </div>
-                             </div>
-                             <div  class="statusboxitem_top_second">
-                                 <span>检测范围</span>
-                                  <el-link  type="success"  :underline="false" @click="viewDialogTrue(1)">查看</el-link>
-                             </div>
-                          </div>
-                          <div class="statusboxitem_bottom">
-                                  <span>开启检测</span>
-                                    <el-switch
-                                        v-model="openTruevalue"
-                                        style="--el-switch-on-color: #ff4949; --el-switch-off-color: #13ce66"
-                                        active-value="0"
-                                        inactive-value="1"
-                                        />
-                          </div>
-                      </div>
-                        <div class="statusboxitem" :style="`background-image: url(${bgColor});`">
-                          <div class="statusboxitem_top">
-                             <div  class="statusboxitem_top_first">
-
-                                <div style=" font-size: 5.25rem;color :white;">
-                                   <i class="ri-radio-button-line"></i>
-                                </div>
-                                  <div class="title">
-                                      完整性检测
-                                  </div>
-                             </div>
-                             <div  class="statusboxitem_top_second">
-                                 <span>检测范围</span>
-                                  <el-link  type="success"  :underline="false" @click="viewDialogTrue(2)">查看</el-link>
-                             </div>
-                          </div>
-                          <div class="statusboxitem_bottom">
-                                  <span>开启检测</span>
-                                    <el-switch
-                                        v-model="openFullvalue"
-                                        style="--el-switch-on-color: #ff4949; --el-switch-off-color: #13ce66"
-                                        active-value="0"
-                                        inactive-value="1"
-                                        />
-                          </div>
-                      </div>
-                                     <div class="statusboxitem" :style="`background-image: url(${bgColor});`">
-                          <div class="statusboxitem_top">
-                             <div  class="statusboxitem_top_first">
-
-                                <div style=" font-size: 5.25rem;color :white;">
-                                    <i class="ri-chat-upload-fill"></i>
-                                </div>
-                                  <div class="title">
-                                      可用性检测
-                                  </div>
-                             </div>
-                             <div  class="statusboxitem_top_second">
-                                 <span>检测范围</span>
-                                  <el-link  type="success"  :underline="false" @click="viewDialogTrue(3)">查看</el-link>
-                             </div>
-                          </div>
-                          <div class="statusboxitem_bottom">
-                                  <span>检测范围</span>
-                                    <el-switch
-                                        v-model="openUsevalue"
-                                        style="--el-switch-on-color: #ff4949; --el-switch-off-color: #13ce66"
-                                        active-value="0"
-                                        inactive-value="1"
-                                        />
-                          </div>
-                      </div>
-                      <div class="statusboxitem" :style="`background-image: url(${bgColor});`">
-                          <div class="statusboxitem_top">
-                             <div  class="statusboxitem_top_first">
-
-                                <div style=" font-size: 5.25rem;color :white;">
-                                 <i class="ri-shield-cross-line"></i>
-                                </div>
-                                  <div class="title">
-                                      安全性检测
-                                  </div>
-                             </div>
-                             <div  class="statusboxitem_top_second">
-                                 <span>检测范围</span>
-                                  <el-link  type="success"  :underline="false" @click="viewDialogTrue(4)">查看</el-link>
-                             </div>
-                          </div>
-                          <div class="statusboxitem_bottom">
-                                  <span>开启检测</span>
-                                    <el-switch
-                                        v-model="openSafevalue"
-                                        style="--el-switch-on-color: #ff4949; --el-switch-off-color: #13ce66"
-                                        active-value="0"
-                                        inactive-value="1"
-                                        />
-                          </div>
-                      </div>
-                  </div>
-                  <div class="progress" v-else>
-                      <div class="progressbox">
-
-                            <div class="hc-steps-view"  style="width:100%;display:flex">
-                                <el-steps :active="activeIndex" align-center  style="width:90%">
-                                    <el-step title="初始化" />
-                                    <el-step title="检测中" />
-                                    <el-step title="生成报告" />
-                                    <el-step title="完成" />
-                                </el-steps>
-                                <el-button type="success" v-if="activeIndex===4" @click="viewReport">查看报告</el-button>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="24">
+                            <div>
+                                [2]电子档案"四性"检测要求及其实现方法[j].浙江档案
                             </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="24">
+                            <div>
+                                制定系统电子文件归档真实性、完整性、可用性、安全性检测服务
+                            </div>
+                        </el-col>
+                    </el-row>
+                </div>
+                <div class="circlebox" @click="detection">
+                    <span v-loading="detectionLoad"> 一键检测</span>
+                </div>
+            </div>
 
-                      </div>
-
-                      <div class="tablebox">
-                            <HcTable1 ref="tableRef" :column="tableColumn" :datas="tableData" :loading="tableLoading">
-                               <template #examiningResult="{row}">
-                                    <i class="ri-checkbox-circle-fill" v-if="row.examiningResult===0" style="color:green"> </i>
-                                    <i class="ri-error-warning-fill" v-else style="color:rgb(189, 49, 36);"></i>
-                                </template>
-                            </HcTable1>
-                       </div>
-                  </div>
-
-             </HcCard1>
+            <div v-if="!isStatus" class="bannerbox " :style="`background-image: url(${testBgsamll});  aspect-ratio: 1993/468;`">
+                <div class="infobox">
+                    <el-row>
+                        <el-col :span="20">
+                            <div>
+                                [1]文书档案检测一般要求:DA/T 70-2018
+                            </div>
+                        </el-col>
+                        <el-col :span="3" :offset="1">
+                            <div style="text-align:right">
+                                <el-tooltip :visible="visible" effect="light">
+                                    <template #content>
+                                        <div v-if="historyRportlist.length > 0" v-loading="reportLoading" class="reportPop">
+                                            <div v-for="item in historyRportlist" class="history_box">
+                                                <el-link type="primary" @click="viewHpdf(item)">{{ item.reportName }}</el-link>
+                                                <span class="m15">{{ item.examiningTime }}</span>
+                                            </div>
+                                        </div>
+                                        <div v-else>暂无数据</div>
+                                    </template>
+                                    <el-button type="primary" @click="showReport">
+                                        历史报告
+                                    </el-button>
+                                </el-tooltip>
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="24">
+                            <div>
+                                [2]电子档案"四性"检测要求及其实现方法[j].浙江档案
+                            </div>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="24">
+                            <div>
+                                制定系统电子文件归档真实性、完整性、可用性、安全性检测服务
+                            </div>
+                        </el-col>
+                    </el-row>
+                </div>
+
+                <el-tooltip
+                    class="box-item"
+                    effect="light"
+                    content="系统正在检测运行中,请勿终止操作"
+                    placement="right-start"
+                    :visible="activeIndex == 2 || activeIndex == 3"
+                >
+                    <div v-if="activeIndex === 4" class="circlebox circlebox2">
+                        <span>100%</span>
+                    </div>
+                    <div v-else class="circlebox circlebox1">
+                        <span>{{ statusPercent }}</span>
+                    </div>
+                </el-tooltip>
+            </div>
 
-             <!-- 查看弹窗 -->
-             <HcDialog :show="imageDialog" :title="imageTitle" widths="990px"   :footer="false"  @close="imageDialogClose">
-            <div >
-                <el-image style="width: 100%; height: 100%" :src="Imageurl"  />
+            <div v-if="isStatus" class="statusbox">
+                <div class="statusboxitem" :style="`background-image: url(${bgColor});`">
+                    <div class="statusboxitem_top">
+                        <div class="statusboxitem_top_first">
+                            <div style=" font-size: 5.25rem;color :white;">
+                                <i class="ri-checkbox-multiple-line" />
+                            </div>
+                            <div class="title">
+                                真实性检测
+                            </div>
+                        </div>
+                        <div class="statusboxitem_top_second">
+                            <span>检测范围</span>
+                            <el-link type="success" :underline="false" @click="viewDialogTrue(1)">查看</el-link>
+                        </div>
+                    </div>
+                    <div class="statusboxitem_bottom">
+                        <span>开启检测</span>
+                        <el-switch
+                            v-model="openTruevalue"
+                            style="--el-switch-on-color: #ff4949; --el-switch-off-color: #13ce66"
+                            active-value="0"
+                            inactive-value="1"
+                        />
+                    </div>
+                </div>
+                <div class="statusboxitem" :style="`background-image: url(${bgColor});`">
+                    <div class="statusboxitem_top">
+                        <div class="statusboxitem_top_first">
+                            <div style=" font-size: 5.25rem;color :white;">
+                                <i class="ri-radio-button-line" />
+                            </div>
+                            <div class="title">
+                                完整性检测
+                            </div>
+                        </div>
+                        <div class="statusboxitem_top_second">
+                            <span>检测范围</span>
+                            <el-link type="success" :underline="false" @click="viewDialogTrue(2)">查看</el-link>
+                        </div>
+                    </div>
+                    <div class="statusboxitem_bottom">
+                        <span>开启检测</span>
+                        <el-switch
+                            v-model="openFullvalue"
+                            style="--el-switch-on-color: #ff4949; --el-switch-off-color: #13ce66"
+                            active-value="0"
+                            inactive-value="1"
+                        />
+                    </div>
+                </div>
+                <div class="statusboxitem" :style="`background-image: url(${bgColor});`">
+                    <div class="statusboxitem_top">
+                        <div class="statusboxitem_top_first">
+                            <div style=" font-size: 5.25rem;color :white;">
+                                <i class="ri-chat-upload-fill" />
+                            </div>
+                            <div class="title">
+                                可用性检测
+                            </div>
+                        </div>
+                        <div class="statusboxitem_top_second">
+                            <span>检测范围</span>
+                            <el-link type="success" :underline="false" @click="viewDialogTrue(3)">查看</el-link>
+                        </div>
+                    </div>
+                    <div class="statusboxitem_bottom">
+                        <span>检测范围</span>
+                        <el-switch
+                            v-model="openUsevalue"
+                            style="--el-switch-on-color: #ff4949; --el-switch-off-color: #13ce66"
+                            active-value="0"
+                            inactive-value="1"
+                        />
+                    </div>
+                </div>
+                <div class="statusboxitem" :style="`background-image: url(${bgColor});`">
+                    <div class="statusboxitem_top">
+                        <div class="statusboxitem_top_first">
+                            <div style=" font-size: 5.25rem;color :white;">
+                                <i class="ri-shield-cross-line" />
+                            </div>
+                            <div class="title">
+                                安全性检测
+                            </div>
+                        </div>
+                        <div class="statusboxitem_top_second">
+                            <span>检测范围</span>
+                            <el-link type="success" :underline="false" @click="viewDialogTrue(4)">查看</el-link>
+                        </div>
+                    </div>
+                    <div class="statusboxitem_bottom">
+                        <span>开启检测</span>
+                        <el-switch
+                            v-model="openSafevalue"
+                            style="--el-switch-on-color: #ff4949; --el-switch-off-color: #13ce66"
+                            active-value="0"
+                            inactive-value="1"
+                        />
+                    </div>
+                </div>
+            </div>
+            <div v-else class="progress">
+                <div class="progressbox">
+                    <div class="hc-steps-view" style="width:100%;display:flex">
+                        <el-steps :active="activeIndex" align-center style="width:90%">
+                            <el-step title="初始化" />
+                            <el-step title="检测中" />
+                            <el-step title="生成报告" />
+                            <el-step title="完成" />
+                        </el-steps>
+                        <el-button v-if="activeIndex === 4" type="success" @click="viewReport">查看报告</el-button>
+                    </div>
+                </div>
+
+                <div class="tablebox">
+                    <HcTable1 ref="tableRef" :column="tableColumn" :datas="tableData" :loading="tableLoading">
+                        <template #examiningResult="{ row }">
+                            <i v-if="row.examiningResult === 0" class="ri-checkbox-circle-fill" style="color:green" />
+                            <i v-else class="ri-error-warning-fill" style="color:rgb(189, 49, 36);" />
+                        </template>
+                    </HcTable1>
+                </div>
             </div>
-        </HcDialog>
-     </div>
+        </HcCard1>
 
+        <!-- 查看弹窗 -->
+        <hc-new-dialog v-model="imageDialog" :title="imageTitle" widths="990px" :footer="false" @close="imageDialogClose">
+            <div>
+                <el-image style="width: 100%; height: 100%" :src="Imageurl" />
+            </div>
+        </hc-new-dialog>
+    </div>
 </template>
 
 <script setup>
-import {nextTick, ref, watch,onMounted} from "vue";
-import {useAppStore} from "~src/store";
-import bgColor  from '~src/assets/view/bgcolor.svg';
-import testBgbig  from '~src/assets/view/testBgbig.png';
-import testBgsamll  from '~src/assets/view/testBgsamll.png';
+import { nextTick, onMounted, ref, watch } from 'vue'
+import { useAppStore } from '~src/store'
+import bgColor from '~src/assets/view/bgcolor.svg'
+import testBgbig from '~src/assets/view/testBgbig.png'
+import testBgsamll from '~src/assets/view/testBgsamll.png'
 import HcCard1 from './components/hc-card1.vue'
 import HcTable1 from './components/hc-table1.vue'
-import reportApi from "~api/custody/testing.js";
-import {getArrValue, toParse, getObjValue, isArrIndex, deepClone} from "js-fast-way"
-import truePng from '~src/assets/testphoto/true.png';
-import fullPng from '~src/assets/testphoto/full.png';
-import usePng from '~src/assets/testphoto/use.png';
-import safePng from '~src/assets/testphoto/safe.png';
+import reportApi from '~api/custody/testing.js'
+import { deepClone, getArrValue, getObjValue, isArrIndex, toParse } from 'js-fast-way'
+import truePng from '~src/assets/testphoto/true.png'
+import fullPng from '~src/assets/testphoto/full.png'
+import usePng from '~src/assets/testphoto/use.png'
+import safePng from '~src/assets/testphoto/safe.png'
+
+//消息数量
+const props = defineProps(
+    {
+        msgCount: {
+            // type: Object,
+            // default: () => ({ })
+        },
+        msgChange:{
 
+        },
+    },
+)
 //变量
 const useAppState = useAppStore()
-const projectId = ref(useAppState.getProjectId);
-const contractId = ref(useAppState.getContractId);
-const projectInfo = ref(useAppState.getProjectInfo);
-const openTruevalue = ref(1);
-const openFullvalue = ref(1);
-const openUsevalue = ref(1);
-const openSafevalue = ref(1);
-const isStatus = ref(1);
-const activeIndex = ref(0);
+const projectId = ref(useAppState.getProjectId)
+const contractId = ref(useAppState.getContractId)
+const projectInfo = ref(useAppState.getProjectInfo)
+const openTruevalue = ref(1)
+const openFullvalue = ref(1)
+const openUsevalue = ref(1)
+const openSafevalue = ref(1)
+const isStatus = ref(1)
+const activeIndex = ref(0)
 
 //表头
 const tableRef = ref(null)
 const tableColumn = ref([
-    {key:'examiningItem', name: '检测项目'},
-    {key:'unqualifiedCount', name: '不合格统计',width:150,align:'center'},
-    {key:'examiningResult', name: '检测结果',width:150,align:'center'},
+    { key:'examiningItem', name: '检测项目' },
+    { key:'unqualifiedCount', name: '不合格统计', width:150, align:'center' },
+    { key:'examiningResult', name: '检测结果', width:150, align:'center' },
 
 ])
 const tableData = ref([])
-const returnTabledata=ref([])
+const returnTabledata = ref([])
 //获取数据
 const tableLoading = ref(false)
 //一键检测
-const reportId=ref(0)
-const detectionLoad=ref(false)
-const detection = async()=>{
-    detectionLoad.value=true
+const reportId = ref(0)
+const detectionLoad = ref(false)
+const detection = async ()=>{
+    detectionLoad.value = true
     const { error, code, data } = await reportApi.getExamining({
         projectId: projectId.value,
         reportId:reportId.value,
         authenticity:openTruevalue.value,
         integrality:openFullvalue.value,
         usability:openUsevalue.value,
-        security:openSafevalue.value
+        security:openSafevalue.value,
     })
-    detectionLoad.value=false
+    detectionLoad.value = false
     if (!error && code === 200) {
-        activeIndex.value=data['status']
-        reportId.value=data['id']
-        isStatus.value=false
+        activeIndex.value = data['status']
+        reportId.value = data['id']
+        isStatus.value = false
     } else {
         window?.$message?.error('操作失败')
     }
@@ -331,35 +323,23 @@ onMounted(() => {
 
 })
 //获取检测报告状态
-const getReportStatusdata=async()=>{
+const getReportStatusdata = async ()=>{
     const { error, code, data } = await reportApi.getReportStatus({
         projectId: projectId.value,
     })
     if (!error && code === 200) {
-        console.log(data,'data');
-        if(data===-1){
-            activeIndex.value=0
-        }else{
-            reportId.value=data
-            isStatus.value=false
+        console.log(data, 'data')
+        if (data === -1) {
+            activeIndex.value = 0
+        } else {
+            reportId.value = data
+            isStatus.value = false
             // reportId.value=data
         }
     }
 
 }
 
-//消息数量
-const props = defineProps(
-    {
-        msgCount: {
-            // type: Object,
-            // default: () => ({ })
-        },
-        msgChange:{
-
-        }
-    }
-)
 //检测百分比
 const statusPercent = ref('25%')
 const finalUrl = ref('')
@@ -381,8 +361,8 @@ const pushTable = async () => {
 const isTimeout = ref(false)
 const setTimeoutData = async () => {
     const arr = newTabledata.value
-    console.log(arr, 'arr');
-   
+    console.log(arr, 'arr')
+
     if (!isTimeout.value && arr.length > 0) {
         isTimeout.value = true
         for (let i = 0; i < arr.length; i++) {
@@ -407,44 +387,44 @@ watch(() => [
         props.msgCount,
         activeIndex,
         props.msgChange,
-    ], ([val,index,msgChange]) => {
+    ], ([val, index, msgChange]) => {
         const res = toParse(val)
-        if(res === true && msgChange > 0) {
-            reportApi.getCurrentExaminingInfo({ reportId: reportId.value}).then((res)=>{
+        if (res === true && msgChange > 0) {
+            reportApi.getCurrentExaminingInfo({ reportId: reportId.value }).then((res)=>{
                 let resdata = res.data
-                console.log(resdata.status,'resdata.status');
-                if (resdata.status===4) {
+                console.log(resdata.status, 'resdata.status')
+                if (resdata.status === 4) {
                        setTimeout(() => {
-                            activeIndex.value = resdata.status;
-                     }, tableData.value.length*1000);
-                }else{
-                    activeIndex.value = resdata.status;
+                            activeIndex.value = resdata.status
+                     }, tableData.value.length * 1000)
+                } else {
+                    activeIndex.value = resdata.status
                 }
                 reTabledata.value = resdata.detailList
-                finalUrl.value = resdata.pdfUrl||''
+                finalUrl.value = resdata.pdfUrl || ''
                 pushTable()
             })
         }
-        if(index.value===1){
-            statusPercent.value='25%'
-        }else if(index.value===2){
-            statusPercent.value='50%'
-        }else if(index.value===3){
-            statusPercent.value='75%'
-        }else if(index.value===4){
-            statusPercent.value='100%'
+        if (index.value === 1) {
+            statusPercent.value = '25%'
+        } else if (index.value === 2) {
+            statusPercent.value = '50%'
+        } else if (index.value === 3) {
+            statusPercent.value = '75%'
+        } else if (index.value === 4) {
+            statusPercent.value = '100%'
         }
 
-    }
+    },
 )
 
 
 //历史报告
 const visible = ref(false)
-const showReport=()=>{
-    visible.value=!visible.value
+const showReport = ()=>{
+    visible.value = !visible.value
 }
-const historyRportlist=ref([])
+const historyRportlist = ref([])
 //获取历史报告列表
 const reportLoading = ref(false)
 const getReportData = async () => {
@@ -455,7 +435,7 @@ const getReportData = async () => {
     reportLoading.value = false
     if (!error && code === 200) {
         historyRportlist.value = getArrValue(data)
-        console.log(data,'data');
+        console.log(data, 'data')
 
     } else {
         historyRportlist.value = []
@@ -464,11 +444,11 @@ const getReportData = async () => {
 
 }
 //查看历史报告
-const viewHpdf=(item)=>{
-    console.log(item,'item');
-    if(item.reportPdfUrl){
+const viewHpdf = (item)=>{
+    console.log(item, 'item')
+    if (item.reportPdfUrl) {
         window.open(item.reportPdfUrl, '_blank')
-    }else{
+    } else {
         window.$message.warning('暂无pdf')
     }
 
@@ -477,34 +457,34 @@ const viewHpdf=(item)=>{
 
 
 //查看真实图片
-const imageDialog=ref(false)
-const Imageurl=ref('')
-const imageTitle=ref('')
-const viewDialogTrue=(type)=>{
-    imageDialog.value=true
-    if(type===1){
-        Imageurl.value=truePng
-        imageTitle.value='真实性检测范围'
-    }else if(type===2){
-        Imageurl.value=fullPng
-        imageTitle.value='完整性检测范围'
-    }else if(type===3){
-        Imageurl.value=usePng
-        imageTitle.value='可以性检测范围'
-    }else{
-        Imageurl.value=safePng
-        imageTitle.value='安全性检测范围'
+const imageDialog = ref(false)
+const Imageurl = ref('')
+const imageTitle = ref('')
+const viewDialogTrue = (type)=>{
+    imageDialog.value = true
+    if (type === 1) {
+        Imageurl.value = truePng
+        imageTitle.value = '真实性检测范围'
+    } else if (type === 2) {
+        Imageurl.value = fullPng
+        imageTitle.value = '完整性检测范围'
+    } else if (type === 3) {
+        Imageurl.value = usePng
+        imageTitle.value = '可以性检测范围'
+    } else {
+        Imageurl.value = safePng
+        imageTitle.value = '安全性检测范围'
     }
 
 }
-const imageDialogClose=()=>{
-    imageDialog.value=false
+const imageDialogClose = ()=>{
+    imageDialog.value = false
 }
 //查看报告
-const viewReport=()=>{
-    if(finalUrl.value){
+const viewReport = ()=>{
+    if (finalUrl.value) {
         window.open(finalUrl.value, '_blank')
-    }else{
+    } else {
         window.$message.warning('暂无pdf')
     }
 }

+ 8 - 12
src/views/transfer/components/carry-spot-checks.vue

@@ -58,8 +58,7 @@
                 <div class="hc-csc-data-box">
                     <HcTable
                         v-if="tabTypeKey === 'tab1'" :column="cscTableColumn1" :datas="cscTableData1"
-                        :is-index="false" :loading="cscTableLoading"
-                        is-new :index-style="{ width: 60 }"
+                        :is-index="false" :loading="cscTableLoading" is-new :index-style="{ width: 60 }"
                     >
                         <template #name="{ row }">
                             <div :class="row.id === 2 ? 'text-link' : 'text-hover'">{{ row?.name }}</div>
@@ -68,7 +67,7 @@
 
                     <HcTable
                         v-if="tabTypeKey === 'tab2'" :column="cscTableColumn2" :datas="cscTableData2"
-                        :is-index="false" :loading="cscTableLoading"
+                        :is-index="false" :loading="cscTableLoading" is-new
                     >
                         <template #name="{ row }">
                             <div :class="row.id === 2 ? 'text-link' : 'text-hover'">{{ row?.name }}</div>
@@ -77,7 +76,7 @@
 
                     <HcTable
                         v-if="tabTypeKey === 'tab3'" :column="cscTableColumn3" :datas="cscTableData3"
-                        :is-index="false" :loading="cscTableLoading"
+                        :is-index="false" :loading="cscTableLoading" is-new
                     >
                         <template #name="{ row }">
                             <div :class="row.id === 2 ? 'text-link' : 'text-hover'">{{ row?.name }}</div>
@@ -86,7 +85,7 @@
 
                     <HcTable
                         v-if="tabTypeKey === 'tab4'" :column="cscTableColumn4" :datas="cscTableData4"
-                        :is-index="false" :loading="cscTableLoading"
+                        :is-index="false" :loading="cscTableLoading" is-new
                     >
                         <template #name="{ row }">
                             <div :class="row.id === 2 ? 'text-link' : 'text-hover'" class="hc-csc-associated-row">
@@ -100,7 +99,7 @@
 
                     <HcTable
                         v-if="tabTypeKey === 'tab6'" :column="cscTableColumn5" :datas="cscTableData5"
-                        :loading="cscTableLoading"
+                        :loading="cscTableLoading" is-new
                     />
 
                     <el-tooltip
@@ -142,16 +141,13 @@
         </HcDrawer>
 
         <!-- 使用弹窗查看数据 -->
-        <HcDialog
-            :footer="false" :show="cscTableDataModal" :title="cscTableDataTitle" is-table widths="1080px"
-            @close="cscTableDataModalClose"
-        >
+        <hc-new-dialog v-model="cscTableDataModal" :footer="false" :title="cscTableDataTitle" is-table widths="1080px" @close="cscTableDataModalClose">
             <MetaTable v-if="tabTypeKey === 'tab5'" :loading="cscTableLoading" />
             <HcTable
                 v-if="tabTypeKey === 'tab6'" :column="cscTableColumn51" :datas="cscTableData5"
-                :loading="cscTableLoading"
+                :loading="cscTableLoading" is-new :index-style="{ width: 60 }"
             />
-        </HcDialog>
+        </hc-new-dialog>
     </div>
 </template>
 

+ 5 - 1
src/views/transfer/components/table-collect.vue

@@ -29,7 +29,11 @@
                 <span>二、勘察设计文件</span>
                 <span class="text-gray">(95卷)</span>
             </template>
-            <HcTable ref="tableFileRef" :column="tableFileColumn" :datas="tableFileData" :loading="tableFileLoading" heights="auto" is-check @selection-change="tableeFileSelection" />
+            <HcTable
+                ref="tableFileRef" :column="tableFileColumn" :datas="tableFileData" :loading="tableFileLoading"
+                heights="auto" is-new :index-style="{ width: 60 }" is-check :check-style="{ width: 29 }"
+                @selection-change="tableeFileSelection"
+            />
         </HcCardItem>
     </hc-new-card>
 

+ 9 - 23
src/views/transfer/inspects.vue

@@ -24,9 +24,7 @@
             <hc-new-card title="已形成的案卷">
                 <HcTable ref="tableRef" :column="tableColumn" :datas="tableData" :loading="tableLoading" is-new :index-style="{ width: 60 }" @row-click="tableRowClick">
                     <template #name="{ row }">
-                        <div class="text-link" :class="row.isReviewed === 1 ? 'text-green' : 'text-blue'">
-                            {{ row?.name }}
-                        </div>
+                        <div class="text-link" :class="row.isReviewed === 1 ? 'text-green' : 'text-blue'">{{ row?.name }}</div>
                     </template>
                 </HcTable>
                 <template #action>
@@ -107,34 +105,26 @@
                 <div class="hc-csc-data-box" :style="{ height: checkId ? '' : 'calc(100% - 363px)' }">
                     <HcTable v-if="tabTypeKey === 'tab1'" :column="cscTableColumn1" :datas="cscTableData1" :loading="cscTableLoading" is-new :is-arr-index="false">
                         <template #name="{ row }">
-                            <div :class="row.id === checkId ? 'text-link' : 'text-hover'" @click="changePdf(row)">
-                                {{ row?.fileName }}
-                            </div>
+                            <div :class="row.id === checkId ? 'text-link' : 'text-hover'" @click="changePdf(row)">{{ row?.fileName }}</div>
                         </template>
                     </HcTable>
 
                     <HcTable v-if="tabTypeKey === 'tab2'" :column="cscTableColumn2" :datas="cscTableData2" :loading="cscTableLoading" is-new :is-index="false">
                         <template #name="{ row }">
-                            <div :class="row.id === 2 ? 'text-link' : 'text-hover'">
-                                {{ row?.name }}
-                            </div>
+                            <div :class="row.id === 2 ? 'text-link' : 'text-hover'">{{ row?.name }}</div>
                         </template>
                     </HcTable>
 
                     <HcTable v-if="tabTypeKey === 'tab3'" :column="cscTableColumn3" :datas="cscTableData3" :loading="cscTableLoading" is-new :is-index="false">
                         <template #name="{ row }">
-                            <div :class="row.id === 2 ? 'text-link' : 'text-hover'">
-                                {{ row?.name }}
-                            </div>
+                            <div :class="row.id === 2 ? 'text-link' : 'text-hover'">{{ row?.name }}</div>
                         </template>
                     </HcTable>
 
                     <HcTable v-if="tabTypeKey === 'tab4'" :column="cscTableColumn4" :datas="cscTableData4" :loading="cscTableLoading" is-new :is-index="false">
                         <template #name="{ row }">
                             <div class="hc-csc-associated-row" :class="row.id === 2 ? 'text-link' : 'text-hover'">
-                                <el-tag effect="dark">
-                                    {{ row?.tag }}
-                                </el-tag>
+                                <el-tag effect="dark">{{ row?.tag }}</el-tag>
                                 <span class="ml-3">{{ row?.name }}</span>
                             </div>
                         </template>
@@ -153,13 +143,9 @@
                 </div>
                 <div v-if="checkId" class="hc-csc-action-box">
                     <div class="header-box">
-                        <div class="title">
-                            抽检意见:
-                        </div>
+                        <div class="title">抽检意见:</div>
                         <div class="extra">
-                            <el-checkbox v-model="reform.type" class="size-xl">
-                                需要整改
-                            </el-checkbox>
+                            <el-checkbox v-model="reform.type" class="size-xl">需要整改</el-checkbox>
                         </div>
                     </div>
                     <div class="textarea-box">
@@ -191,10 +177,10 @@
         </HcDrawer>
 
         <!-- 使用弹窗查看数据 -->
-        <HcDialog :show="cscTableDataModal" :title="cscTableDataTitle" widths="1080px" is-table :footer="false" @close="cscTableDataModalClose">
+        <hc-new-dialog v-model="cscTableDataModal" :title="cscTableDataTitle" widths="1080px" is-table :footer="false" @close="cscTableDataModalClose">
             <MetaTable v-if="tabTypeKey === 'tab5'" :loading="cscmetaTableLoading" :meta-data-table="cscmetaDataTabledata" :ishow-file="ishowFile" />
             <HcTable v-if="tabTypeKey === 'tab6'" :column="cscTableColumn51" :datas="cscTableData5" :loading="cscTableLoading" is-new :index-style="{ width: 60 }" />
-        </HcDialog>
+        </hc-new-dialog>
     </div>
 </template>
 

+ 2 - 2
src/views/transfer/preliminary-examination.vue

@@ -82,12 +82,12 @@
         />
 
         <!-- 抽检记录 -->
-        <HcDialog is-slot-footer :show="isLogModal" is-table widths="70%" title="抽检记录" @close="isLogModalClose">
+        <hc-new-dialog v-model="isLogModal" is-slot-footer is-table widths="70%" title="抽检记录" @close="isLogModalClose">
             <TableOpinion :contract-id="contractId" :project-id="projectId" />
             <template #footer>
                 <HcPages :pages="searchLogForm" @change="pageLogChange" />
             </template>
-        </HcDialog>
+        </hc-new-dialog>
     </div>
 </template>
 

+ 3 - 4
src/views/transfer/submit-report.vue

@@ -50,9 +50,8 @@
         </hc-new-card>
 
         <!-- 确认提交结论 -->
-        <HcDialog
-            :cancel-close="false" :show="isReportModal" append-to-body cancel-text="保存暂不提交"
-            save-text="保存并提交报告" title="提交验收报告" widths="30rem"
+        <hc-new-dialog
+            v-model="isReportModal" :cancel-close="false" cancel-text="保存暂不提交" save-text="保存并提交报告" title="提交验收报告" widths="30rem"
             @cancel="onReportModalCancel" @close="onReportModalClose" @save="onReportModalSave"
         >
             <el-form
@@ -80,7 +79,7 @@
                     />
                 </el-form-item>
             </el-form>
-        </HcDialog>
+        </hc-new-dialog>
 
         <!-- 历史报告 -->
         <HcDrawer

+ 2 - 2
src/views/transfer/writing-conclusion.vue

@@ -54,7 +54,7 @@
         </hc-new-card>
 
         <!-- 抽检记录详情 -->
-        <HcDialog :show="isOpinionModal" title="抽检记录详情" widths="60%" is-table :footer="false" @close="onOpinionModalClose">
+        <hc-new-dialog v-model="isOpinionModal" title="抽检记录详情" widths="60%" is-table :footer="false" @close="onOpinionModalClose">
             <div class="hc-table-opinion-text">
                 <div class="title">案卷题名:安康至来凤国家高速公路奉节至巫山....</div>
                 <div class="opinion-text">
@@ -74,7 +74,7 @@
                     src="https://bladex-test-info.oss-cn-chengdu.aliyuncs.com//upload/20221212/ce9799c7d18efc03efefd6f242439f2e.pdf"
                 />
             </div>
-        </HcDialog>
+        </hc-new-dialog>
     </div>
 </template>
 

+ 62 - 62
src/views/using/components/media-mic/index.vue

@@ -1,88 +1,91 @@
 <template>
     <div class="hc-media-mic-box">
-        <div class="hc-icon-mic" v-loading="isLoading" @click="startClick">
-            <HcIcon name="mic" :fill="isMicShow"/>
+        <div v-loading="isLoading" class="hc-icon-mic" @click="startClick">
+            <HcIcon name="mic" :fill="isMicShow" />
         </div>
 
-        <!--语音识别-->
-        <HcDialog ui="hc-media-recorder-dialog" bgColor="#fff" title="语音识别搜索" widths="360px" saveText="确认" :show="isMicShow" @close="closeClick">
-            <!--录音中-->
-            <div class="hc-media-recorder-box" @click="endClick" v-if="isMicType === 0">
+        <!-- 语音识别 -->
+        <hc-new-dialog v-model="isMicShow" ui="hc-media-recorder-dialog" title="语音识别搜索" widths="360px" save-text="确认" @close="closeClick">
+            <!-- 录音中 -->
+            <div v-if="isMicType === 0" class="hc-media-recorder-box" @click="endClick">
                 <img :src="imageViewMic" alt="">
                 <div class="content-box">
                     <div class="shut-down-icon">
-                        <HcIcon name="shut-down"/>
+                        <HcIcon name="shut-down" />
                     </div>
                     <div class="time-box">
-                        <span class="time">{{micTime}}</span>
+                        <span class="time">{{ micTime }}</span>
                         <span> / 01:00</span>
                     </div>
                 </div>
             </div>
-            <!--语音转换中-->
-            <div class="hc-media-recorder-box ban" v-if="isMicType === 1">
+            <!-- 语音转换中 -->
+            <div v-if="isMicType === 1" class="hc-media-recorder-box ban">
                 <img :src="imageViewMic" alt="">
                 <div class="content-box">
                     <div class="shut-down-icon">
-                        <HcIcon name="mic-off"/>
+                        <HcIcon name="mic-off" />
                     </div>
                     <div class="time-box">
                         <span class="time">语音转换中...</span>
                     </div>
                 </div>
             </div>
-            <!--语音转换完成-->
-            <div class="content-search-word" v-if="isMicType === 2">
+            <!-- 语音转换完成 -->
+            <div v-if="isMicType === 2" class="content-search-word">
                 <div class="content-word-box">
                     <div class="title">识别结果:</div>
-                    <div class="search-word">{{searchInfo.searchWord??'未识别到内容,请重新录入语音'}}</div>
+                    <div class="search-word">{{ searchInfo.searchWord ?? '未识别到内容,请重新录入语音' }}</div>
                 </div>
                 <div class="word-btn-box">
                     <el-row :gutter="10">
                         <el-col :span="8">
                             <el-button block type="warning" @click="startClick">
-                                <HcIcon name="mic"/>
+                                <HcIcon name="mic" />
                                 <span>重录语音</span>
                             </el-button>
                         </el-col>
                         <el-col :span="8">
                             <el-button block type="info" :loading="downloadLoading" :disabled="!fileBlobUrl" @click="fileDownload">
-                                <HcIcon name="download"/>
+                                <HcIcon name="download" />
                                 <span>下载语音</span>
                             </el-button>
                         </el-col>
                         <el-col :span="8">
                             <el-button block type="primary" :disabled="!searchInfo.searchWord" @click="searchClick">
-                                <HcIcon name="search-2"/>
+                                <HcIcon name="search-2" />
                                 <span>确认搜索</span>
                             </el-button>
                         </el-col>
                     </el-row>
                 </div>
             </div>
-        </HcDialog>
+        </hc-new-dialog>
     </div>
 </template>
 
 <script setup>
-import {ref, watch} from "vue"
-import archiveQueryApi from "~api/using/query.js"
-import imageViewMic from "~src/assets/view/mic.gif"
-import {getObjValue} from "js-fast-way"
+import { ref, watch } from 'vue'
+import archiveQueryApi from '~api/using/query.js'
+import imageViewMic from '~src/assets/view/mic.gif'
+import { getObjValue } from 'js-fast-way'
 
 //参数
 const props = defineProps({
     loading: {
         type: Boolean,
-        default: false
+        default: false,
     },
 })
 
+//事件
+const emit = defineEmits(['change'])
+
 const isLoading = ref(props.loading)
 
 //监听
 watch(() => [
-    props.loading
+    props.loading,
 ], ([loading]) => {
     isLoading.value = loading
 })
@@ -101,16 +104,13 @@ const micTimeRef = ref(null)
 const streamRef = ref(null)
 const mediaRecorderRef = ref(null)
 
-//事件
-const emit = defineEmits(['change'])
-
 //开始录音
 const startClick = async () => {
     isMicType.value = 0
     if (streamRef.value === null) {
         const stream = await getUserMedia()
         if (stream === false) {
-            return false;
+            return false
         }
         streamRef.value = stream
     }
@@ -124,7 +124,7 @@ const endClick = () => {
     isMicType.value = 1
     mediaRecorderRef.value?.stop()
     mediaRecorderRef.value = null
-    clearTimeout(micTimeRef.value);
+    clearTimeout(micTimeRef.value)
     micTimeRef.value = null
     micTime.value = '00:00'
 }
@@ -140,33 +140,33 @@ const closeClick = () => {
 //开始录音
 const startRecorder = () => {
     //获取音频流
-    const {stream} = setSampleRate()
-    let mediaRecorder = new MediaRecorder(stream), chunks;
+    const { stream } = setSampleRate()
+    let mediaRecorder = new MediaRecorder(stream), chunks
     //开始录音
-    mediaRecorder.start();
+    mediaRecorder.start()
     setMicTimeFormat() //开始计时
     // 录音结束时,停止并下载录音文件
-    mediaRecorder.addEventListener("dataavailable", (e) => {
-        clearTimeout(micTimeRef.value);
+    mediaRecorder.addEventListener('dataavailable', (e) => {
+        clearTimeout(micTimeRef.value)
         micTimeRef.value = null
-        chunks = e.data;
-    });
+        chunks = e.data
+    })
     // 录音结束
-    mediaRecorder.addEventListener("stop", () => {
+    mediaRecorder.addEventListener('stop', () => {
         if (!isClose.value) {
             //获取wav格式音频数据
-            let blob = new Blob([chunks], {type: "audio/wav"});
-            const fileName = new Date().getTime() + ".wav"
+            let blob = new Blob([chunks], { type: 'audio/wav' })
+            const fileName = new Date().getTime() + '.wav'
             fileBlobName.value = fileName
-            let file = new window.File([blob],fileName, {type: "audio/wav"});
+            let file = new window.File([blob], fileName, { type: 'audio/wav' })
             // 创建一个blob的对象,把Json转化为字符串作为我们的值
-            fileBlobUrl.value = window.URL.createObjectURL(blob);
+            fileBlobUrl.value = window.URL.createObjectURL(blob)
             // 准备上传
             const formData = new FormData()
             formData.append('file', file)
             transcribeApi(formData)
         }
-    });
+    })
     mediaRecorderRef.value = mediaRecorder
 }
 
@@ -178,12 +178,12 @@ const fileDownload = () => {
     if (fileBlobUrl.value) {
         downloadLoading.value = true
         // 创建一个链接元素,是属于 a 标签的链接元素,所以括号里才是a,
-        let link = document.createElement("a");
-        link.href = fileBlobUrl.value;
+        let link = document.createElement('a')
+        link.href = fileBlobUrl.value
         // 把上面获得的blob的对象链接赋值给新创建的这个 a 链接
-        link.setAttribute("download", fileBlobName.value ?? "录音.wav");
+        link.setAttribute('download', fileBlobName.value ?? '录音.wav')
         // 后面的是文件名字,可以更改
-        link.click();
+        link.click()
         setTimeout(() => {
             downloadLoading.value = false
         }, 5000)
@@ -216,13 +216,13 @@ const searchClick = () => {
 const setSampleRate = () => {
     if (streamRef.value) {
         const audioContext = new AudioContext({
-            sampleRate: 16000
-        });
+            sampleRate: 16000,
+        })
         const mediaStreamAudioSourceNode = new MediaStreamAudioSourceNode(audioContext, {
-            mediaStream: streamRef.value
-        });
-        const mediaStreamAudioDestinationNode = new MediaStreamAudioDestinationNode(audioContext);
-        mediaStreamAudioSourceNode.connect(mediaStreamAudioDestinationNode);
+            mediaStream: streamRef.value,
+        })
+        const mediaStreamAudioDestinationNode = new MediaStreamAudioDestinationNode(audioContext)
+        mediaStreamAudioSourceNode.connect(mediaStreamAudioDestinationNode)
         return mediaStreamAudioDestinationNode
     } else {
         return {}
@@ -234,34 +234,34 @@ const getUserMedia = () => {
     return new Promise((resolve) => {
         // 老的浏览器可能根本没有实现 mediaDevices,所以我们可以先设置一个空的对象
         if (navigator.mediaDevices === undefined) {
-            navigator.mediaDevices = {};
+            navigator.mediaDevices = {}
         }
         // 一些浏览器部分支持 mediaDevices。我们不能直接给对象设置 getUserMedia
         // 因为这样可能会覆盖已有的属性。这里我们只会在没有 getUserMedia 属性的时候添加它。
         if (navigator.mediaDevices.getUserMedia === undefined) {
-            navigator.mediaDevices.getUserMedia = function(constraints) {
+            navigator.mediaDevices.getUserMedia = function (constraints) {
                 // 首先,如果有 getUserMedia 的话,就获得它
-                let getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
+                let getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia
                 // 一些浏览器根本没实现它 - 那么就返回一个 error 到 promise 的 reject 来保持一个统一的接口
                 if (!getUserMedia) {
                     window?.$message.error('当前浏览器不支持语音功能')
                     resolve(false)
                 }
                 // 否则,为老的 navigator.getUserMedia 方法包裹一个 Promise
-                return new Promise(function(resolve, reject) {
-                    getUserMedia.call(navigator, constraints, resolve, reject);
-                });
+                return new Promise(function (resolve, reject) {
+                    getUserMedia.call(navigator, constraints, resolve, reject)
+                })
             }
         }
         // 使用新方法的API
         navigator.mediaDevices.getUserMedia({
-            audio: true
+            audio: true,
         }).then(stream => {
             resolve(stream)
         }).catch(err => {
             window?.$message.error('获取麦克风权限失败了')
             resolve(false)
-        });
+        })
     })
 }
 
@@ -278,12 +278,12 @@ const setMicTimeFormat = () => {
             sec = sec < 10 ? '0' + sec : sec
             micTime.value = `${min}:${sec}`
         } else {
-            clearTimeout(micTimeRef.value);
+            clearTimeout(micTimeRef.value)
             micTimeRef.value = null
             micTime.value = '00:00'
             endClick()
         }
-    },1000)
+    }, 1000)
 }
 </script>
 

+ 5 - 1
src/views/using/components/table-collect.vue

@@ -36,7 +36,11 @@
                 <span>二、勘察设计文件</span>
                 <span class="text-gray">(95卷)</span>
             </template>
-            <HcTable ref="tableFileRef" :column="tableFileColumn" :datas="tableFileData" :loading="tableFileLoading" is-check @selection-change="tableeFileSelection" />
+            <HcTable
+                ref="tableFileRef" :column="tableFileColumn" :datas="tableFileData" :loading="tableFileLoading"
+                is-new :index-style="{ width: 60 }" is-check :check-style="{ width: 29 }"
+                @selection-change="tableeFileSelection"
+            />
             <template #action>
                 <HcPages :pages="searchFormFile" @change="pageFileChange" />
             </template>

+ 4 - 4
src/views/using/query.vue

@@ -401,13 +401,13 @@
         </HcDrawer>
 
         <!-- 使用弹窗查看数据 -->
-        <HcDialog :show="cscTableDataModal" :title="cscTableDataTitle" widths="1080px" is-table :footer="false" @close="cscTableDataModalClose">
+        <hc-new-dialog v-model="cscTableDataModal" :title="cscTableDataTitle" widths="1080px" is-table :footer="false" @close="cscTableDataModalClose">
             <MetaTable v-if="tabTypeKey === 'tab5'" :loading="cscTableLoading" :ishow-file="isFile === 1 ? false : true" :meta-data-table="cscmetaDataTabledata" />
             <HcTable v-if="tabTypeKey === 'tab6'" :column="cscTableColumn51" :datas="cscTableData5" :loading="cscTableLoading" is-new :index-style="{ width: 60 }" />
-        </HcDialog>
+        </hc-new-dialog>
 
         <!-- 目录树 -->
-        <HcDialog :show="nodeTreeModal" widths="1080px" is-table save-text="确认" :is-close="false" @close="nodeTreeModalClose" @save="nodeTreeModalSave">
+        <hc-new-dialog v-model="nodeTreeModal" widths="1080px" is-table save-text="确认" :is-close="false" @close="nodeTreeModalClose" @save="nodeTreeModalSave">
             <template #header>
                 <div role="heading" class="el-dialog__title">
                     <span class="mr-3">选择目录</span>
@@ -444,7 +444,7 @@
                 </template>
             </el-collapse>
             <HcNoData v-if="nodeTreeArr.length == 0" />
-        </HcDialog>
+        </hc-new-dialog>
     </div>
 </template>