Browse Source

feat:待阅公文完成

DESKTOP-07F1812\coder 2 years ago
parent
commit
e6fd63e423

+ 238 - 0
src/pages/officialDocumentManager/todoOffcialDoucument/detail/index.vue

@@ -0,0 +1,238 @@
+<script setup>
+import { closeToast, showLoadingToast, showToast } from 'vant'
+import Pdfh5 from 'pdfh5'
+
+const { currentRoute } = useRouter()
+const route = currentRoute.value
+const gw_id = route.query.gw_id
+const detailData = ref({})
+const shjl = ref([])
+
+function getData() {
+  showLoadingToast({
+    message: '加载中...',
+    forbidClick: true,
+  })
+  request({
+    url: '/jdbg/gwgl_gw/detail',
+    data: {
+      gw_id,
+    },
+  }).then((res) => {
+    closeToast()
+    detailData.value = res.data.one_info
+    shjl.value = res.data.one_info.shjl
+    const appendUrl = res.data.one_info.gw_content.split('|')[0]
+    const curFileShowUrl = appendUrl.replace(/\.\w+$/, '.pdf')
+    const pdfh5 = new Pdfh5('#pdfContent', {
+      pdfurl: curFileShowUrl,
+      scrollEnable: false,
+      zoomEnable: false,
+    })
+  })
+}
+getData()
+
+const auditchecked = ref('')
+const auditDialogShow = ref(false)
+const sh_reason = ref('')
+function clickAudit() {
+  auditchecked.value = ''
+  sh_reason.value = ''
+  auditDialogShow.value = true
+}
+function beforeCloseDialog(action) {
+  if (action == 'confirm') {
+    if (auditchecked.value == '') {
+      showToast('请选择审核结果')
+      return false
+    }
+    else if ((auditchecked.value === '2') && sh_reason.value == '') {
+      showToast('请填写意见')
+      return false
+    }
+    else {
+      dialogSubmit()
+      return true
+    }
+  }
+  else {
+    return true
+  }
+}
+function dialogSubmit() {
+  const transObj = {
+    gw_id,
+    sh_status: auditchecked.value, // 待审核 1通过 2驳回
+    sh_reason: sh_reason.value, // 处理意见
+  }
+  showLoadingToast({
+    message: '提交中...',
+    forbidClick: true,
+  })
+  request({
+    url: '/jdbg/gwgl_gw/check',
+    data: transObj,
+  }).then((res) => {
+    closeToast()
+    if (res.code == 1) {
+      showToast(res.msg)
+      getData()
+    }
+  })
+}
+</script>
+
+<template>
+  <div>
+    <div class="tableContainer">
+      <div class="topPart">
+        <table class="Tb" width="100%" cellspacing="0" cellpadding="0">
+          <tr>
+            <td class="titleOpt">
+              类型:
+            </td>
+            <td>{{ detailData.lb_name }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              标题:
+            </td>
+            <td>{{ detailData.gw_title }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              发文字号:
+            </td>
+            <td>{{ detailData.gw_zh }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              发起人:
+            </td>
+            <td>{{ detailData.gw_fqr_name }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              发起科室:
+            </td>
+            <td>{{ detailData.gw_fqks_name }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              发起时间:
+            </td>
+            <td>{{ detailData.create_dateline }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              当前步骤:
+            </td>
+            <td>{{ detailData.gw_bz }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              当前审核人:
+            </td>
+            <td>{{ detailData.gw_shr }}</td>
+          </tr>
+
+          <tr>
+            <td class="titleOpt">
+              审核状态:
+            </td>
+            <td>
+              <div class="specialTd">
+                {{ detailData.gw_status_option_n }}
+              </div>
+            </td>
+          </tr>
+          <tbody v-for="(item, index) in shjl" :key="index" class="bg-hex-fffff9 border_bottom">
+            <tr>
+              <td class="titleOpt">
+                步骤名称:
+              </td>
+              <td>
+                <div class="specialTd">
+                  {{ item.sh_dept_name }}
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <td class="titleOpt">
+                审核人:
+              </td>
+              <td>
+                <div class="specialTd">
+                  {{ item.sh_user_name }}
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <td class="titleOpt">
+                操作:
+              </td>
+              <td>
+                <div v-if="item.sh_status == 2">
+                  通过
+                </div>
+                <div v-else-if="item.sh_status == 1">
+                  <van-button class="rightButton" type="primary" @click.stop="clickAudit()">
+                    审核
+                  </van-button>
+                </div>
+                <div v-else>
+                  不通过
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <td class="titleOpt">
+                处理意见:
+              </td>
+              <td>
+                <div class="specialTd">
+                  {{ item.sh_reason }}
+                </div>
+              </td>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+    </div>
+    <div id="pdfContent" />
+    <van-dialog
+      v-model:show="auditDialogShow" title="审核" confirm-button-text="提交" show-cancel-button
+      :before-close="beforeCloseDialog"
+    >
+      <div class="dialogDiv">
+        <van-radio-group v-model="auditchecked">
+          <van-cell-group inset>
+            <van-cell title="通过" clickable @click="auditchecked = '2'">
+              <template #right-icon>
+                <van-radio name="2" />
+              </template>
+            </van-cell>
+            <van-cell title="不通过" clickable @click="auditchecked = '3'">
+              <template #right-icon>
+                <van-radio name="3" />
+              </template>
+            </van-cell>
+          </van-cell-group>
+        </van-radio-group>
+        <van-field v-if="auditchecked === '3'" v-model="sh_reason" rows="3" autosize type="textarea" placeholder="填写意见" />
+      </div>
+    </van-dialog>
+  </div>
+</template>
+
+<style lang="scss" scoped>
+.rightButton {
+  height: 30px;
+  width: 75px;
+}
+
+:deep(.specialTd table tbody tr td) {
+  border: 1px #CCCCCC solid !important;
+}
+</style>

+ 45 - 0
src/pages/officialDocumentManager/todoOffcialDoucument/index.vue

@@ -0,0 +1,45 @@
+<script setup>
+import { userInfo } from '~/store/user'
+
+const { uo_type } = userInfo
+const isBureau = ref(false)// 当前用户是否局端
+isBureau.value = uo_type === '1'
+
+const list = ref([])
+const loading = ref(false)
+const finished = ref(false)
+let page = 1
+function onLoad() {
+  loading.value = true
+  request({
+    url: '/jdbg/gwgl_gw/index',
+    data: {
+      page,
+      limit: 20,
+      my_check: 1,
+      gw_fb_depart: isBureau ? '' : '1',
+    },
+  }).then((res) => {
+    const data = res.data
+    list.value = [...list.value, ...data.page_data]
+    finished.value = data.total_page === page
+    page++
+    loading.value = false
+  })
+}
+const router = useRouter()
+function cellClick(gw_id) {
+  router.push({ path: '/officialDocumentManager/todoOffcialDoucument/detail', query: { gw_id } })
+}
+</script>
+
+<template>
+  <div>
+    <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
+      <van-cell
+        v-for="(item, index) in list" :key="item" :title="`${index + 1}. ${item.gw_title}`"
+        @click="cellClick(item.gw_id)"
+      />
+    </van-list>
+  </div>
+</template>