Explorar o código

feat:名优教师绩效考核完成,其他页面优化

DESKTOP-07F1812\coder %!s(int64=2) %!d(string=hai) anos
pai
achega
ca35281dcc

+ 1 - 1
.env

@@ -1 +1 @@
-VITE_APP_TITLE = '景宁校端'
+VITE_APP_TITLE = '景宁H5'

+ 1 - 0
src/main.ts

@@ -3,6 +3,7 @@ import { createPinia } from 'pinia'
 import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
 import router from './router/index'
 import App from './App.vue'
+import 'vant/es/toast/style'
 import 'amfe-flexible'
 
 import 'virtual:windi.css'

+ 7 - 5
src/pages/techerFlowManager/annualAssessmentSum/detail/index.vue

@@ -1,25 +1,27 @@
 <script setup>
+import { closeToast, showLoadingToast } from 'vant'
+
 const { currentRoute } = useRouter()
 const route = currentRoute.value
 const jjnh_id = route.query.jjnh_id
 const detailData = ref({})
-const loading = ref(true)
+showLoadingToast({
+  message: '加载中...',
+  forbidClick: true,
+})
 request({
   url: '/jdbg/jsldgl_ndkhhz/detail',
   data: {
     jjnh_id,
   },
 }).then((res) => {
-  loading.value = false
+  closeToast()
   detailData.value = res.data.one_info
 })
 </script>
 
 <template>
   <div>
-    <div v-if="loading" class="loadingClass">
-      <van-loading type="spinner" />
-    </div>
     <div class="tableContainer">
       <div class="topPart">
         <table class="Tb" width="100%" cellspacing="0" cellpadding="0">

+ 7 - 5
src/pages/techerFlowManager/exteriorPersonManger/detail/index.vue

@@ -1,25 +1,27 @@
 <script setup>
+import { closeToast, showLoadingToast } from 'vant'
+
 const { currentRoute } = useRouter()
 const route = currentRoute.value
 const jsxw_id = route.query.jsxw_id
 const detailData = ref({})
-const loading = ref(true)
+showLoadingToast({
+  message: '加载中...',
+  forbidClick: true,
+})
 request({
   url: '/jdbg/jsldgl_xxbwrygl/detail',
   data: {
     jsxw_id,
   },
 }).then((res) => {
-  loading.value = false
+  closeToast()
   detailData.value = res.data.one_info
 })
 </script>
 
 <template>
   <div>
-    <div v-if="loading" class="loadingClass">
-      <van-loading type="spinner" />
-    </div>
     <div class="tableContainer">
       <div class="topPart">
         <table class="Tb" width="100%" cellspacing="0" cellpadding="0">

+ 256 - 0
src/pages/techerFlowManager/teacherPerformanceAssessment/detailMyApplyFor/index.vue

@@ -0,0 +1,256 @@
+<script setup>
+import { closeToast, showLoadingToast } from 'vant'
+import { download2 } from '~/request/request'
+
+const { currentRoute } = useRouter()
+const route = currentRoute.value
+const jjmk_id = route.query.jjmk_id
+const detailData = ref({})
+
+const jjtj = ref({})
+const zbtj = ref({})
+showLoadingToast({
+  message: '加载中...',
+  forbidClick: true,
+})
+request({
+  url: '/jdbg/jsldgl_myjsjxkh_khhz/detail',
+  data: {
+    jjmk_id,
+  },
+}).then((res) => {
+  closeToast()
+  detailData.value = res.data.one_info
+
+  if (detailData.value.jjmkl_jjmkl_id_1 == 1)
+    jjtj.value = JSON.parse(res.data.one_info.jjmkl_jjtj_json)
+
+  else if (detailData.value.jjmkl_jjmkl_id_1 == 10)
+
+    zbtj.value = JSON.parse(res.data.one_info.jjmkl_zbdffj_json)
+})
+function getFile(url, fileName) {
+  download2(url, null, fileName.split('.')[0])
+}
+</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.jjmk_uo_name }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              姓名
+            </td>
+            <td>
+              {{ detailData.jjmk_xm }}
+            </td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              考核类别
+            </td>
+            <td>{{ detailData.jjmkl_jjmkl_name_1 }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              名师类别
+            </td>
+            <td>{{ detailData.jjmkl_jjmkl_name_2 }}</td>
+          </tr>
+          <template v-if="detailData.jjmkl_jjmkl_id_1 == 1">
+            <tr>
+              <td class="titleOpt">
+                教学类别
+              </td>
+              <td>
+                <div class="specialTd">
+                  {{ detailData.jjmkl_jjmkl_name_3 }}
+                </div>
+              </td>
+            </tr>
+            <tbody v-for="(item, index) in jjtj" :key="index" class="bg-hex-fffff9 border_bottom">
+              <tr>
+                <td class="titleOpt">
+                  进阶条件
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.cate1 }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  内容
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.desc }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  附件
+                </td>
+                <td>
+                  <span style="color: #1A7AFD;" @click="getFile(item.file.url, item.file.name)">{{ item.file.name
+                  }}</span>
+                </td>
+              </tr>
+            </tbody>
+            <tr>
+              <td class="titleOpt">
+                申报表
+              </td>
+              <td>
+                <div v-for="f in detailData.jjmkl_sqb_file.split(';')" :key="f">
+                  <span style="color: #1A7AFD;" @click="getFile(f.split('|')[0], f.split('|')[1])">
+                    {{ f.split('|')[1]
+                    }}
+                  </span>
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <td class="titleOpt">
+                量化表
+              </td>
+              <td>
+                <div v-for="f in detailData.jjmkl_lhb_file.split(';')" :key="f">
+                  <span style="color: #1A7AFD;" @click="getFile(f.split('|')[0], f.split('|')[1])">
+                    {{ f.split('|')[1]
+                    }}
+                  </span>
+                </div>
+              </td>
+            </tr>
+          </template>
+
+          <template v-else-if="detailData.jjmkl_jjmkl_id_1 == 10">
+            <tbody v-for="(item, index) in zbtj" :key="index" class="bg-hex-fffff9 border_bottom">
+              <tr>
+                <td class="titleOpt">
+                  一级指标
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.cate1 }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  二级指标
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.cate2 }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  内容
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.desc }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  得分
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.score }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  附件
+                </td>
+                <td>
+                  <span style="color: #1A7AFD;" @click="getFile(item.file.url, item.file.name)">
+                    {{ item.file.name
+                    }}
+                  </span>
+                </td>
+              </tr>
+            </tbody>
+            <tr>
+              <td class="titleOpt">
+                总分
+              </td>
+              <td>
+                <div class="specialTd">
+                  {{ detailData.jjmkl_zbzf }}
+                </div>
+              </td>
+            </tr>
+          </template>
+          <tr>
+            <td class="titleOpt">
+              校端审核情况
+            </td>
+            <td>
+              <div>
+                <span
+                  :class="{ 'text-red': detailData.jjmkl_xdshqk_option_n === '不合格' || detailData.jjmkl_xdshqk_option_n === '不符合' }"
+                >{{
+                  detailData.jjmkl_xdshqk_option_n
+                }}</span>
+                <p v-if="detailData.jjmkl_xdshqk_option_n === '不合格' || detailData.jjmkl_xdshqk_option_n === '不符合'">
+                  {{ detailData.jjmkl_xdshqk_clyj }}
+                </p>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              局端审核情况
+            </td>
+            <td>
+              <div>
+                <span
+                  :class="{ 'text-red': detailData.jjmkl_jdshqk_option_n === '不合格' || detailData.jjmkl_jdshqk_option_n === '不符合' }"
+                >{{
+                  detailData.jjmkl_jdshqk_option_n
+                }}</span>
+                <p v-if="detailData.jjmkl_jdshqk_option_n === '不合格' || detailData.jjmkl_jdshqk_option_n === '不符合'">
+                  {{ detailData.jjmkl_jdshqk_clyj }}
+                </p>
+              </div>
+            </td>
+          </tr>
+        </table>
+      </div>
+    </div>
+  </div>
+</template>
+
+<style lang="scss" scoped>
+.border_bottom {
+  border-bottom: 2px solid #666;
+  border-top: 2px solid #666;
+}
+
+.text-red {
+  color: red;
+}
+
+::v-deep .specialTd table tbody tr td {
+  border: 1px #CCCCCC solid !important;
+}
+</style>

+ 399 - 0
src/pages/techerFlowManager/teacherPerformanceAssessment/detailMyAuditFor/index.vue

@@ -0,0 +1,399 @@
+<script setup>
+import { closeToast, showLoadingToast, showToast } from 'vant'
+import { download2 } from '~/request/request'
+import { userInfo } from '~/store/user'
+
+const { uo_type, user_id } = userInfo
+const isBureau = ref(false)// 当前用户是否局端
+isBureau.value = uo_type === '1'
+
+const { currentRoute } = useRouter()
+const route = currentRoute.value
+const jjmk_id = route.query.jjmk_id
+const detailData = ref({})
+
+const jjtj = ref({})
+const zbtj = ref({})
+
+function getData() {
+  showLoadingToast({
+    message: '加载中...',
+    forbidClick: true,
+  })
+  request({
+    url: '/jdbg/jsldgl_myjsjxkh_khhz/detail',
+    data: {
+      jjmk_id,
+    },
+  }).then((res) => {
+    closeToast()
+    detailData.value = res.data.one_info
+
+    if (detailData.value.jjmkl_jjmkl_id_1 == 1)
+      jjtj.value = JSON.parse(res.data.one_info.jjmkl_jjtj_json)
+
+    else if (detailData.value.jjmkl_jjmkl_id_1 == 10)
+
+      zbtj.value = JSON.parse(res.data.one_info.jjmkl_zbdffj_json)
+  })
+}
+getData()
+
+function getFile(url, fileName) {
+  download2(url, null, fileName.split('.')[0])
+}
+
+const auditOptions10 = [{
+  v: '1',
+  n: '优秀',
+}, {
+  v: '3',
+  n: '良好',
+}, {
+  v: '4',
+  n: '合格',
+}, {
+  v: '5',
+  n: '不合格',
+}]
+const auditOptions1 = [{
+  v: '6',
+  n: '符合',
+}, {
+  v: '7',
+  n: '不符合',
+}]
+const auditchecked = ref('')
+const auditOptions = ref([])
+const auditDialogShow = ref(false)
+const jjmkl_jdshqk_clyj = ref('')
+let operaItem = {}
+function clickAudit(item) {
+  operaItem = item
+  auditchecked.value = ''
+  jjmkl_jdshqk_clyj.value = ''
+  if (item.jjmkl_jjmkl_id_1 == '10')
+    auditOptions.value = auditOptions10
+  else if (item.jjmkl_jjmkl_id_1 == '1')
+    auditOptions.value = auditOptions1
+
+  auditDialogShow.value = true
+}
+function beforeCloseDialog(action) {
+  if (action == 'confirm') {
+    if (auditchecked.value == '') {
+      showToast('请选择审核结果')
+      return false
+    }
+    else if ((auditchecked.value == '5' || auditchecked.value == '7') && jjmkl_jdshqk_clyj.value == '') {
+      showToast('请填写意见')
+      return false
+    }
+    else {
+      dialogSubmit()
+      return true
+    }
+  }
+  else {
+    return true
+  }
+}
+function dialogSubmit() {
+  let transObj = {}
+  if (!isBureau.value) {
+    transObj = {
+      jjmk_id: operaItem.jjmk_id,
+      jjmkl_xdshqk: auditchecked.value,
+      jjmkl_xdshqk_clyj: jjmkl_jdshqk_clyj.value,
+    }
+  }
+  else if (isBureau.value) {
+    transObj = {
+      jjmk_id: operaItem.jjmk_id,
+      jjmkl_jdshqk: auditchecked.value,
+      jjmkl_jdshqk_clyj: jjmkl_jdshqk_clyj.value,
+    }
+  }
+  showLoadingToast({
+    message: '提交中...',
+    forbidClick: true,
+  })
+  request({
+    url: '/jdbg/jsldgl_myjsjxkh_khhz/edit',
+    data: {
+      jjmk_id: transObj.jjmk_id,
+      jdbg_jsldgl_myjsjxkh_khhz: {
+        jjmkl_xdshqk: transObj.jjmkl_xdshqk,
+        jjmkl_xdshqk_clyj: transObj.jjmkl_xdshqk_clyj,
+        jjmkl_jdshqk: transObj.jjmkl_jdshqk,
+        jjmkl_jdshqk_clyj: transObj.jjmkl_jdshqk_clyj,
+      },
+    },
+  }).then((res) => {
+    closeToast()
+    if (res.code == 1) {
+      showToast(res.msg)
+      getData()
+    }
+
+    // listMyAuditFor.value = []
+    // pageMyAuditFor = 1
+    // onLoadMyAuditFor()
+  })
+}
+</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.jjmk_uo_name }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              姓名
+            </td>
+            <td>
+              {{ detailData.jjmk_xm }}
+            </td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              考核类别
+            </td>
+            <td>{{ detailData.jjmkl_jjmkl_name_1 }}</td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              名师类别
+            </td>
+            <td>{{ detailData.jjmkl_jjmkl_name_2 }}</td>
+          </tr>
+          <template v-if="detailData.jjmkl_jjmkl_id_1 == 1">
+            <tr>
+              <td class="titleOpt">
+                教学类别
+              </td>
+              <td>
+                <div class="specialTd">
+                  {{ detailData.jjmkl_jjmkl_name_3 }}
+                </div>
+              </td>
+            </tr>
+            <tbody v-for="(item, index) in jjtj" :key="index" class="bg-hex-fffff9 border_bottom">
+              <tr>
+                <td class="titleOpt">
+                  进阶条件
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.cate1 }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  内容
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.desc }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  附件
+                </td>
+                <td>
+                  <span style="color: #1A7AFD;" @click="getFile(item.file.url, item.file.name)">{{ item.file.name
+                  }}</span>
+                </td>
+              </tr>
+            </tbody>
+            <tr>
+              <td class="titleOpt">
+                申报表
+              </td>
+              <td>
+                <div v-for="f in detailData.jjmkl_sqb_file.split(';')" :key="f">
+                  <span style="color: #1A7AFD;" @click="getFile(f.split('|')[0], f.split('|')[1])">
+                    {{ f.split('|')[1]
+                    }}
+                  </span>
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <td class="titleOpt">
+                量化表
+              </td>
+              <td>
+                <div v-for="f in detailData.jjmkl_lhb_file.split(';')" :key="f">
+                  <span style="color: #1A7AFD;" @click="getFile(f.split('|')[0], f.split('|')[1])">
+                    {{ f.split('|')[1]
+                    }}
+                  </span>
+                </div>
+              </td>
+            </tr>
+          </template>
+
+          <template v-else-if="detailData.jjmkl_jjmkl_id_1 == 10">
+            <tbody v-for="(item, index) in zbtj" :key="index" class="bg-hex-fffff9 border_bottom">
+              <tr>
+                <td class="titleOpt">
+                  一级指标
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.cate1 }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  二级指标
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.cate2 }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  内容
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.desc }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  得分
+                </td>
+                <td>
+                  <div class="specialTd">
+                    {{ item.score }}
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td class="titleOpt">
+                  附件
+                </td>
+                <td>
+                  <span style="color: #1A7AFD;" @click="getFile(item.file.url, item.file.name)">
+                    {{ item.file.name
+                    }}
+                  </span>
+                </td>
+              </tr>
+            </tbody>
+            <tr>
+              <td class="titleOpt">
+                总分
+              </td>
+              <td>
+                <div class="specialTd">
+                  {{ detailData.jjmkl_zbzf }}
+                </div>
+              </td>
+            </tr>
+          </template>
+          <tr>
+            <td class="titleOpt">
+              校端审核情况
+            </td>
+            <td>
+              <div v-if="detailData.jjmkl_xdshqk !== '2'">
+                <span
+                  :class="{ 'text-red': detailData.jjmkl_xdshqk_option_n === '不合格' || detailData.jjmkl_xdshqk_option_n === '不符合' }"
+                >{{
+                  detailData.jjmkl_xdshqk_option_n
+                }}</span>
+                <p v-if="detailData.jjmkl_xdshqk_option_n === '不合格' || detailData.jjmkl_xdshqk_option_n === '不符合'">
+                  {{ detailData.jjmkl_xdshqk_clyj }}
+                </p>
+              </div>
+              <div v-if="detailData.jjmkl_xdshqk === '2' && !isBureau">
+                <van-button class="rightButton" type="primary" @click="clickAudit(detailData)">
+                  审核
+                </van-button>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td class="titleOpt">
+              局端审核情况
+            </td>
+            <td>
+              <div v-if="detailData.jjmkl_jdshqk !== '2'">
+                <span
+                  :class="{ 'text-red': detailData.jjmkl_jdshqk_option_n === '不合格' || detailData.jjmkl_jdshqk_option_n === '不符合' }"
+                >{{
+                  detailData.jjmkl_jdshqk_option_n
+                }}</span>
+                <p v-if="detailData.jjmkl_jdshqk_option_n === '不合格' || detailData.jjmkl_jdshqk_option_n === '不符合'">
+                  {{ detailData.jjmkl_jdshqk_clyj }}
+                </p>
+              </div>
+              <div v-if="detailData.jjmkl_jdshqk === '2' && isBureau">
+                <van-button class="rightButton" type="primary" @click="clickAudit(detailData)">
+                  审核
+                </van-button>
+              </div>
+            </td>
+          </tr>
+        </table>
+      </div>
+    </div>
+    <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 v-for="item of auditOptions" :key="item" :title="item.n" clickable @click="auditchecked = item.v">
+              <template #right-icon>
+                <van-radio :name="item.v" />
+              </template>
+            </van-cell>
+          </van-cell-group>
+        </van-radio-group>
+        <van-field
+          v-if="auditchecked === '5' || auditchecked === '7'" v-model="jjmkl_jdshqk_clyj" rows="3" autosize
+          type="textarea" placeholder="填写意见"
+        />
+      </div>
+    </van-dialog>
+  </div>
+</template>
+
+<style lang="scss" scoped>
+.border_bottom {
+  border-bottom: 2px solid #666;
+  border-top: 2px solid #666;
+}
+
+.text-red {
+  color: red;
+}
+
+:deep(.specialTd table tbody tr td) {
+  border: 1px #CCCCCC solid !important;
+}
+
+.rightButton {
+  height: 30px;
+}
+</style>

+ 274 - 0
src/pages/techerFlowManager/teacherPerformanceAssessment/index.vue

@@ -0,0 +1,274 @@
+<script setup>
+import { closeToast, showLoadingToast, showToast } from 'vant'
+import { userInfo } from '~/store/user'
+
+const { uo_type, user_id } = userInfo
+const isBureau = ref(false)// 当前用户是否局端
+isBureau.value = uo_type === '1'
+
+const router = useRouter()
+function cellClick(jjmk_id, url) {
+  router.push({ path: url, query: { jjmk_id } })
+}
+
+// 我申请的
+const listMyApplyFor = ref([])
+const loadingMyApplyFor = ref(false)
+const finishedMyApplyFor = ref(false)
+let pageMyApplyFor = 1
+function onLoadMyApplyFor() {
+  loadingMyApplyFor.value = true
+  request({
+    url: '/jdbg/jsldgl_myjsjxkh_khhz/index',
+    data: {
+      page: pageMyApplyFor,
+      limit: 20,
+      create_user_id: user_id,
+    },
+  }).then((res) => {
+    const data = res.data
+    listMyApplyFor.value = [...listMyApplyFor.value, ...data.page_data]
+    finishedMyApplyFor.value = data.total_page === pageMyApplyFor
+    pageMyApplyFor++
+    loadingMyApplyFor.value = false
+  })
+}
+
+// 我审核的
+const listMyAuditFor = ref([])
+const loadingMyMyAuditFor = ref(false)
+const finishedMyAuditFor = ref(false)
+let pageMyAuditFor = 1
+function onLoadMyAuditFor() {
+  loadingMyApplyFor.value = true
+  let data = {}
+  if (isBureau.value) {
+    data = {
+      page: pageMyAuditFor,
+      limit: 20,
+      jjmkl_jdshqk: '2',
+      jjmkl_xdshqk: '1,3,4,5,6,7',
+    }
+  }
+  else {
+    data = {
+      page: pageMyAuditFor,
+      limit: 20,
+      jjmkl_xdshqk: '2',
+    }
+  }
+  request({
+    url: '/jdbg/jsldgl_myjsjxkh_khhz/index',
+    data,
+  }).then((res) => {
+    const data = res.data
+    listMyAuditFor.value = [...listMyAuditFor.value, ...data.page_data]
+    finishedMyAuditFor.value = data.total_page === pageMyAuditFor
+    pageMyAuditFor++
+    loadingMyMyAuditFor.value = false
+  })
+}
+
+const auditOptions10 = [{
+  v: '1',
+  n: '优秀',
+}, {
+  v: '3',
+  n: '良好',
+}, {
+  v: '4',
+  n: '合格',
+}, {
+  v: '5',
+  n: '不合格',
+}]
+const auditOptions1 = [{
+  v: '6',
+  n: '符合',
+}, {
+  v: '7',
+  n: '不符合',
+}]
+const auditchecked = ref('')
+const auditOptions = ref([])
+const auditDialogShow = ref(false)
+const jjmkl_jdshqk_clyj = ref('')
+let operaItem = {}
+function clickAudit(item) {
+  operaItem = item
+  auditchecked.value = ''
+  jjmkl_jdshqk_clyj.value = ''
+  if (item.jjmkl_jjmkl_id_1 == '10')
+    auditOptions.value = auditOptions10
+  else if (item.jjmkl_jjmkl_id_1 == '1')
+    auditOptions.value = auditOptions1
+
+  auditDialogShow.value = true
+}
+function beforeCloseDialog(action) {
+  if (action == 'confirm') {
+    if (auditchecked.value == '') {
+      showToast('请选择审核结果')
+      return false
+    }
+    else if ((auditchecked.value == '5' || auditchecked.value == '7') && jjmkl_jdshqk_clyj.value == '') {
+      showToast('请填写意见')
+      return false
+    }
+    else {
+      dialogSubmit()
+      return true
+    }
+  }
+  else {
+    return true
+  }
+}
+function dialogSubmit() {
+  let transObj = {}
+  if (!isBureau.value) {
+    transObj = {
+      jjmk_id: operaItem.jjmk_id,
+      jjmkl_xdshqk: auditchecked.value,
+      jjmkl_xdshqk_clyj: jjmkl_jdshqk_clyj.value,
+    }
+  }
+  else if (isBureau.value) {
+    transObj = {
+      jjmk_id: operaItem.jjmk_id,
+      jjmkl_jdshqk: auditchecked.value,
+      jjmkl_jdshqk_clyj: jjmkl_jdshqk_clyj.value,
+    }
+  }
+  showLoadingToast({
+    message: '提交中...',
+    forbidClick: true,
+  })
+  request({
+    url: '/jdbg/jsldgl_myjsjxkh_khhz/edit',
+    data: {
+      jjmk_id: transObj.jjmk_id,
+      jdbg_jsldgl_myjsjxkh_khhz: {
+        jjmkl_xdshqk: transObj.jjmkl_xdshqk,
+        jjmkl_xdshqk_clyj: transObj.jjmkl_xdshqk_clyj,
+        jjmkl_jdshqk: transObj.jjmkl_jdshqk,
+        jjmkl_jdshqk_clyj: transObj.jjmkl_jdshqk_clyj,
+      },
+    },
+  }).then((res) => {
+    closeToast()
+    if (res.code == 1) {
+      showToast(res.msg)
+      listMyAuditFor.value = []
+      pageMyAuditFor = 1
+      onLoadMyAuditFor()
+    }
+  })
+}
+// 考核汇总
+const listPerformanceSum = ref([])
+const loadingPerformanceSum = ref(false)
+const finishedPerformanceSum = ref(false)
+let pagePerformanceSum = 1
+
+function onLoadPerformanceSum() {
+  loadingPerformanceSum.value = true
+  request({
+    url: '/jdbg/jsldgl_myjsjxkh_khhz/index',
+    data: {
+      page: pagePerformanceSum,
+      limit: 20,
+    },
+  }).then((res) => {
+    const data = res.data
+    listPerformanceSum.value = [...listPerformanceSum.value, ...data.page_data]
+    finishedPerformanceSum.value = data.total_page === pagePerformanceSum
+    pagePerformanceSum++
+    loadingPerformanceSum.value = false
+  })
+}
+</script>
+
+<template>
+  <div>
+    <van-tabs :sticky="true">
+      <van-tab v-if="isBureau" title="我申请的">
+        <van-list
+          v-model:loading="loadingMyApplyFor" :finished="finishedMyApplyFor" finished-text="没有更多了"
+          @load="onLoadMyApplyFor"
+        >
+          <van-cell
+            v-for="item in listMyApplyFor" :key="item"
+            :title="`${item.jjmk_uo_name}\u00A0\u00A0\u00A0${item.jjmk_xm}`" :label="item.jjmkl_jjmkl_name_1"
+            @click="cellClick(item.jjmk_id, '/techerFlowManager/teacherPerformanceAssessment/detailMyApplyFor')"
+          />
+        </van-list>
+      </van-tab>
+      <van-tab title="我审核的">
+        <van-list
+          v-model:loading="loadingMyMyAuditFor" :finished="finishedMyAuditFor" finished-text="没有更多了"
+          @load="onLoadMyAuditFor"
+        >
+          <van-cell
+            v-for="item in listMyAuditFor" :key="item"
+            :title="`${item.jjmk_uo_name}\u00A0\u00A0\u00A0${item.jjmk_xm}`" :label="item.jjmkl_jjmkl_name_1"
+            @click="cellClick(item.jjmk_id, '/techerFlowManager/teacherPerformanceAssessment/detailMyAuditFor')"
+          >
+            <template #value>
+              <van-button class="rightButton" type="primary" @click.stop="clickAudit(item)">
+                审核
+              </van-button>
+            </template>
+          </van-cell>
+        </van-list>
+      </van-tab>
+      <van-tab title="考核汇总">
+        <van-list
+          v-model:loading="loadingPerformanceSum" :finished="finishedPerformanceSum" finished-text="没有更多了"
+          @load="onLoadPerformanceSum"
+        >
+          <van-cell
+            v-for="item in listPerformanceSum" :key="item"
+            :title="`${item.jjmk_uo_name}\u00A0\u00A0\u00A0${item.jjmk_xm}`" :label="item.jjmkl_jjmkl_name_1"
+            @click="cellClick(item.jjmk_id, '/techerFlowManager/teacherPerformanceAssessment/detailMyApplyFor')"
+          />
+        </van-list>
+      </van-tab>
+    </van-tabs>
+
+    <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 v-for="item of auditOptions" :key="item" :title="item.n" clickable @click="auditchecked = item.v">
+              <template #right-icon>
+                <van-radio :name="item.v" />
+              </template>
+            </van-cell>
+          </van-cell-group>
+        </van-radio-group>
+        <van-field
+          v-if="auditchecked === '5' || auditchecked === '7'" v-model="jjmkl_jdshqk_clyj" rows="3" autosize
+          type="textarea" placeholder="填写意见"
+        />
+      </div>
+    </van-dialog>
+  </div>
+</template>
+
+<style lang="scss" scoped>
+.rightButton {
+  height: 30px;
+}
+
+.dialogDiv {
+  padding: 10px;
+}
+
+:deep(.van-field__body) {
+  background: #F2F2F2;
+}
+</style>

+ 7 - 5
src/pages/techerFlowManager/techerSituationSum/detail/index.vue

@@ -1,25 +1,27 @@
 <script setup>
+import { closeToast, showLoadingToast } from 'vant'
+
 const { currentRoute } = useRouter()
 const route = currentRoute.value
 const jj_ms = route.query.jj_ms
 const detailData = ref({})
-const loading = ref(true)
+showLoadingToast({
+  message: '加载中...',
+  forbidClick: true,
+})
 request({
   url: '/jdbg/jsldgl_myjsqkhz/detail',
   data: {
     jj_ms,
   },
 }).then((res) => {
-  loading.value = false
+  closeToast()
   detailData.value = res.data.one_info
 })
 </script>
 
 <template>
   <div>
-    <div v-if="loading" class="loadingClass">
-      <van-loading type="spinner" />
-    </div>
     <div class="tableContainer">
       <div class="topPart">
         <table class="Tb" width="100%" cellspacing="0" cellpadding="0">

+ 2 - 2
src/request/request.ts

@@ -68,7 +68,7 @@ service.interceptors.response.use(
             localStorage.setItem('userInfo', JSON.stringify(res.data))
             isRelogin = false
             // 视情况打开
-            location.reload()
+            // location.reload()
           }
         })
       }
@@ -119,7 +119,7 @@ export function download(url, data, name) {
   el.click()
 }
 
-export function download2(url, data, name) {
+export function download2(url, name) {
   const el = document.createElement('a')
   const href = `${window.globalVariables.api}/openapi/download.php?path=${url}&name=${name}`
   el.setAttribute('href', href)

+ 1 - 0
src/store/user.js

@@ -1,4 +1,5 @@
 import { defineStore } from 'pinia'
+
 import local from './local/lhl'
 
 localStorage.setItem(

+ 1 - 8
src/styles/main.scss

@@ -4,16 +4,9 @@ body,
   height: 100%;
   margin: 0;
   padding: 0;
-  background: #f2f2f2;
+  // background: #ffff;
 }
 
 html.dark {
   background: #121212;
 }
-
-.loadingClass {
-  width: 100%;
-  height: 100vh;
-  display: flex;
-  justify-content: center;
-}