Browse Source

附件名称

ZaiZai 1 year ago
parent
commit
f5954e2c6e
3 changed files with 147 additions and 20 deletions
  1. 1 1
      public/version.json
  2. 2 2
      src/config/index.json
  3. 144 17
      src/views/tasks/components/hc-data/task-review.vue

+ 1 - 1
public/version.json

@@ -1,3 +1,3 @@
 {
-  "value": "20240704135249"
+  "value": "20240704180053"
 }

+ 2 - 2
src/config/index.json

@@ -1,9 +1,9 @@
 {
     "version": "20230607160059",
     "target1": "http://127.0.0.1:8090",
-    "target2": "http://192.168.0.125:8090",
+    "target": "http://192.168.0.125:8090",
     "target3": "http://39.108.216.210:8090",
-    "target": "http://192.168.0.109:8090",
+    "target4": "http://192.168.0.109:8090",
     "smsPhone": "",
     "vite": {
         "port": 5180,

+ 144 - 17
src/views/tasks/components/hc-data/task-review.vue

@@ -64,24 +64,94 @@
                 <div :id="`hc_task_table_${uuid}`" class="hc-task-table">
                     <hc-body class="hc-task-body-card" padding="10px">
                         <div class="hc-task-body-table">
-                            <hc-table
-                                ref="tableRef" :column="tableColumn" :datas="tableData" :is-stripe="false"
-                                is-new :index-style="{ width: 60 }" is-current-row @row-click="tableRowClick"
-                            >
-                                <template #action="{ row }">
-                                    <div class="hc-task-table-action" :class="row.isComment === 1 ? 'is-cur' : ''" @click="rowRemarkClick(row)">
-                                        <i class="i-iconoir-star-solid" />
+                            <hc-tab-card :tabs="tabsData" :tab-key="tabKey" @change="tabsChange">
+                                <hc-table
+                                    v-if="tabKey === '1'" ref="tableRef" :column="tableColumn" :datas="tableData"
+                                    :is-stripe="false" is-new :index-style="{ width: 60 }" is-current-row
+                                    @row-click="tableRowClick"
+                                >
+                                    <template #action="{ row }">
+                                        <div class="hc-task-table-action" :class="row.isComment === 1 ? 'is-cur' : ''" @click="rowRemarkClick(row)">
+                                            <i class="i-iconoir-star-solid" />
+                                        </div>
+                                    </template>
+                                    <template #state="{ row }">
+                                        <div class="hc-task-table-state">
+                                            <i v-if="row.status === 1" class="i-iconoir-check-circle-solid is-success" />
+                                            <i v-else-if="row.status === 2" class="i-iconoir-xmark-circle-solid is-danger" />
+                                            <span v-else-if="row.status === 3">审批结束</span>
+                                            <i v-else class="i-iconoir-help-circle-solid" />
+                                        </div>
+                                    </template>
+                                </hc-table>
+                                <div v-if="tabKey === '2'" class="hc-task-body-table-form">
+                                    <div class="title">意见信息</div>
+                                    <div class="name">总监理工程师意见:</div>
+                                    <div class="input">
+                                        <el-input v-model="meterApproveOpinion2.repealDesc" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.chiefSupervisor" type="textarea" />
+                                    </div>
+                                    <div class="name">监理审核意见:</div>
+                                    <div class="input">
+                                        <el-input v-model="meterApproveOpinion2.supervisorAudit" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.supervisorAudit" type="textarea" />
+                                    </div>
+                                    <div class="input-box">
+                                        <div class="box">
+                                            <div class="name">工程建设部意见:</div>
+                                            <div class="input">
+                                                <el-input v-model="meterApproveOpinion2.projectBuild" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.projectBuild" type="textarea" />
+                                            </div>
+                                        </div>
+                                        <div class="box">
+                                            <div class="name no-b">分管领导意见:</div>
+                                            <div class="input no-b">
+                                                <el-input v-model="meterApproveOpinion2.projectBuildLeader" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.projectBuildLeader" type="textarea" />
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="input-box">
+                                        <div class="box">
+                                            <div class="name">安全管理部意见:</div>
+                                            <div class="input">
+                                                <el-input v-model="meterApproveOpinion2.safetyManager" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.safetyManager" type="textarea" />
+                                            </div>
+                                        </div>
+                                        <div class="box">
+                                            <div class="name no-b">分管领导意见:</div>
+                                            <div class="input no-b">
+                                                <el-input v-model="meterApproveOpinion2.safetyManagerLeader" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.safetyManagerLeader" type="textarea" />
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="input-box">
+                                        <div class="box">
+                                            <div class="name">合同部意见:</div>
+                                            <div class="input">
+                                                <el-input v-model="meterApproveOpinion2.contractDept" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.contractDept" type="textarea" />
+                                            </div>
+                                        </div>
+                                        <div class="box">
+                                            <div class="name no-b">分管领导意见:</div>
+                                            <div class="input no-b">
+                                                <el-input v-model="meterApproveOpinion2.contractDeptLeader" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.contractDeptLeader" type="textarea" />
+                                            </div>
+                                        </div>
                                     </div>
-                                </template>
-                                <template #state="{ row }">
-                                    <div class="hc-task-table-state">
-                                        <i v-if="row.status === 1" class="i-iconoir-check-circle-solid is-success" />
-                                        <i v-else-if="row.status === 2" class="i-iconoir-xmark-circle-solid is-danger" />
-                                        <span v-else-if="row.status === 3">审批结束</span>
-                                        <i v-else class="i-iconoir-help-circle-solid" />
+                                    <div class="input-box">
+                                        <div class="box">
+                                            <div class="name">总经理意见:</div>
+                                            <div class="input">
+                                                <el-input v-model="meterApproveOpinion2.generalManager" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.generalManager" type="textarea" />
+                                            </div>
+                                        </div>
+                                        <div class="box">
+                                            <div class="name no-b">董事长意见:</div>
+                                            <div class="input no-b">
+                                                <el-input v-model="meterApproveOpinion2.chiefExecutive" :autosize="{ minRows: 2, maxRows: 4 }" :disabled="meterApproveOpinion1.chiefExecutive" type="textarea" />
+                                            </div>
+                                        </div>
                                     </div>
-                                </template>
-                            </hc-table>
+                                </div>
+                            </hc-tab-card>
                         </div>
                         <div v-if="!isNullES(detailInfo.opinionType)" class="hc-task-body-tip hc-flex h-30px">
                             <span class="mr-14px">上报总金额:{{ reportAllMoney }}元</span>
@@ -119,7 +189,7 @@ import { toPdfPage } from '~uti/btn-auth'
 import HcTaskForm from './task-form.vue'
 import HcTaskNotes from './task-notes.vue'
 import HcRepealForm from './repeal-form.vue'
-import { arrUnion, getArrValue, getObjValue, getRandom, isNullES } from 'js-fast-way'
+import { arrUnion, deepClone, getArrValue, getObjValue, getRandom, isNullES } from 'js-fast-way'
 import mainApi from '~api/tasks/hc-data'
 import certificateApi from '~api/debit-pay/admin/certificate'
 import dayjs from 'dayjs'
@@ -205,6 +275,8 @@ const setTaskInfo = () => {
 const detailInfo = ref({})
 const reportAllMoney = ref('0')
 const progressMoney = ref('0')
+const meterApproveOpinion1 = ref({})
+const meterApproveOpinion2 = ref({})
 const isLoading = ref(false)
 const getTableDetail = async () => {
     isLoading.value = true
@@ -230,6 +302,10 @@ const getTableDetail = async () => {
         })
         flowListTask.value = arrUnion(firstarr, taskList)
     }
+    //意见信息
+    const meterRes = getObjValue(data.meterApproveOpinion)
+    meterApproveOpinion2.value = deepClone(meterRes)
+    meterApproveOpinion1.value = meterRes
 
     //默认选中第一行
     let info = {}
@@ -387,6 +463,7 @@ const SMSAuthConfirm = async () => {
         taskId: rowInfo.value.id,
         projectId: projectId.value,
         contractId: contractId.value,
+        meterApproveOpinion: meterApproveOpinion2.value,
     })
     if (!error && code === 200) {
         window.$message.success('审批成功')
@@ -431,6 +508,16 @@ const rowViewPdf = async () => {
         window.$message.error(msg ?? '操作失败')
     }
 }
+
+//选项卡
+const tabKey = ref('1')
+const tabsData = [
+    { key: '1', name: '计量单信息' },
+    { key: '2', name: '意见信息' },
+]
+const tabsChange = ({ key }) => {
+    tabKey.value = key
+}
 </script>
 
 <style lang="scss" scoped>
@@ -508,6 +595,46 @@ const rowViewPdf = async () => {
     .hc-task-body-table {
         position: relative;
         height: calc(100% - 30px);
+        .hc-task-body-table-form {
+            position: relative;
+            height: 100%;
+            overflow: auto;
+            .title {
+                position: relative;
+                display: flex;
+                align-items: center;
+                justify-content: center;
+                font-size: 18px;
+                border: 1px solid #e5e6ea;
+                height: 50px;
+            }
+            .name {
+                position: relative;
+                display: flex;
+                align-items: center;
+                font-size: 13px;
+                border: 1px solid #e5e6ea;
+                padding: 10px;
+                border-top: 0;
+            }
+            .input {
+                position: relative;
+                border: 1px solid #e5e6ea;
+                padding: 6px;
+                border-top: 0;
+            }
+            .input-box {
+                position: relative;
+                display: flex;
+                .box {
+                    position: relative;
+                    width: 50%;
+                }
+                .no-b {
+                    border-left: 0;
+                }
+            }
+        }
     }
     .hc-task-body-tip {
         color: red;