浏览代码

移除部分无用代码

bzkf3 2 年之前
父节点
当前提交
cb5eb04a6a

+ 3 - 0
.gitignore

@@ -2,3 +2,6 @@
 .idea/
 src/*.d.ts
 /dist/
+
+components.d.ts
+auto-imports.d.ts

+ 1 - 1
auto-imports.d.ts

@@ -1,5 +1,5 @@
 // Generated by 'unplugin-auto-import'
 export {}
 declare global {
-  const ElMessage: typeof import('element-plus/es')['ElMessage']
+
 }

+ 0 - 459
dev.help.md

@@ -1,16 +1,4 @@
 <!--  -->
-校端办公管理应用	80006	校端办公	xdbg
-校端教务、学业管理应用	80007	校端教学	xdjx
-校端教研管理应用	80008	校端教研	xdjy
-校端德育管理应用	80009	校端德育	xddy
-校端后勤管理应用	80010	校端后勤	xdhq
-局端办公管理应用	80011	局端办公	jdbg
-教育画像应用	80012	教育画像	jshx
-互联学校管理端软件 - 巡课管理	80013	巡课管理	xkgl
-互联学校管理端软件 - 课表管理		课表管理	
-互联学校管理端软件 - 数据统计	80014	数据统计	sjtj
-
-<!--  -->
 民族	MZ
 学段	XD
 家庭成员关系	GXM
@@ -52,450 +40,3 @@
 教职工当前状态	JZGDQZT
 人事变动类型	RSBDLX
 教学事故级别	JXSGJB
-
-## 老师
-[
-    {
-        "user_realname": "张静雪",
-        "user_no": "1171"
-    },
-    {
-        "user_realname": "李文静",
-        "user_no": "1170"
-    },
-    {
-        "user_realname": "杨威dev",
-        "user_no": "1169"
-    },
-    {
-        "user_realname": "侯晓倩",
-        "user_no": "1168"
-    },
-    {
-        "user_realname": "朱凡",
-        "user_no": "1167"
-    },
-    {
-        "user_realname": "骆海亮",
-        "user_no": "1038"
-    },
-    {
-        "user_realname": "李昊",
-        "user_no": "1036"
-    },
-    {
-        "user_realname": "汪元吉",
-        "user_no": "1035"
-    },
-    {
-        "user_realname": "许胡明dev",
-        "user_no": "864"
-    },
-    {
-        "user_realname": "刘安",
-        "user_no": "775"
-    }
-]
-## 学生
-[
-    {
-        "user_realname": "任奕文",
-        "user_no": "1829"
-    },
-    {
-        "user_realname": "林京津",
-        "user_no": "1828"
-    },
-    {
-        "user_realname": "陈新怡",
-        "user_no": "1827"
-    },
-    {
-        "user_realname": "雷雨杭",
-        "user_no": "1826"
-    },
-    {
-        "user_realname": "雷小锋",
-        "user_no": "1825"
-    },
-    {
-        "user_realname": "雷俊杰",
-        "user_no": "1824"
-    },
-    {
-        "user_realname": "蓝秀芬",
-        "user_no": "1823"
-    },
-    {
-        "user_realname": "胡婧暄",
-        "user_no": "1822"
-    },
-    {
-        "user_realname": "雷宏涛",
-        "user_no": "1821"
-    },
-    {
-        "user_realname": "张美灵",
-        "user_no": "1820"
-    },
-    {
-        "user_realname": "孙可方",
-        "user_no": "1819"
-    },
-    {
-        "user_realname": "雷俊朗",
-        "user_no": "1818"
-    },
-    {
-        "user_realname": "吴赵煊",
-        "user_no": "1817"
-    },
-    {
-        "user_realname": "吴悦畅",
-        "user_no": "1816"
-    },
-    {
-        "user_realname": "林涵妍",
-        "user_no": "1815"
-    },
-    {
-        "user_realname": "程一珏",
-        "user_no": "1814"
-    },
-    {
-        "user_realname": "胡乐晨",
-        "user_no": "1813"
-    },
-    {
-        "user_realname": "王奕颖",
-        "user_no": "1812"
-    },
-    {
-        "user_realname": "陈漫琦",
-        "user_no": "1811"
-    },
-    {
-        "user_realname": "梅明龙",
-        "user_no": "1810"
-    },
-    {
-        "user_realname": "梅锦华",
-        "user_no": "1809"
-    },
-    {
-        "user_realname": "陈艳",
-        "user_no": "1808"
-    },
-    {
-        "user_realname": "曹林锦",
-        "user_no": "1807"
-    },
-    {
-        "user_realname": "周嘉伟",
-        "user_no": "1806"
-    },
-    {
-        "user_realname": "华东",
-        "user_no": "1805"
-    },
-    {
-        "user_realname": "陈语嫣",
-        "user_no": "1804"
-    },
-    {
-        "user_realname": "梅章飞",
-        "user_no": "1803"
-    },
-    {
-        "user_realname": "季小明",
-        "user_no": "1802"
-    },
-    {
-        "user_realname": "商文涛",
-        "user_no": "1801"
-    },
-    {
-        "user_realname": "雷熠",
-        "user_no": "1800"
-    },
-    {
-        "user_realname": "韦乘飞",
-        "user_no": "1799"
-    },
-    {
-        "user_realname": "张伟金",
-        "user_no": "1798"
-    },
-    {
-        "user_realname": "杨仲彬",
-        "user_no": "1797"
-    },
-    {
-        "user_realname": "潘梦雪",
-        "user_no": "1796"
-    },
-    {
-        "user_realname": "张杨逸",
-        "user_no": "1795"
-    },
-    {
-        "user_realname": "张奇宇",
-        "user_no": "1794"
-    },
-    {
-        "user_realname": "曾淼杰",
-        "user_no": "1793"
-    },
-    {
-        "user_realname": "严帮雄",
-        "user_no": "1792"
-    },
-    {
-        "user_realname": "徐陈笑",
-        "user_no": "1791"
-    },
-    {
-        "user_realname": "谢王斌",
-        "user_no": "1790"
-    },
-    {
-        "user_realname": "吴京耘",
-        "user_no": "1789"
-    },
-    {
-        "user_realname": "刘俏",
-        "user_no": "1788"
-    },
-    {
-        "user_realname": "雷茹菲",
-        "user_no": "1787"
-    },
-    {
-        "user_realname": "雷柳涛",
-        "user_no": "1786"
-    },
-    {
-        "user_realname": "严卓雅",
-        "user_no": "1785"
-    },
-    {
-        "user_realname": "梅钰涵",
-        "user_no": "1784"
-    },
-    {
-        "user_realname": "吴承宋",
-        "user_no": "1783"
-    },
-    {
-        "user_realname": "张家俊",
-        "user_no": "1782"
-    },
-    {
-        "user_realname": "赖佩君",
-        "user_no": "1781"
-    },
-    {
-        "user_realname": "姜冉",
-        "user_no": "1780"
-    },
-    {
-        "user_realname": "梅皓宇",
-        "user_no": "1779"
-    },
-    {
-        "user_realname": "陈诗雅",
-        "user_no": "1778"
-    },
-    {
-        "user_realname": "鲍熠航",
-        "user_no": "1777"
-    },
-    {
-        "user_realname": "柳雷",
-        "user_no": "1776"
-    },
-    {
-        "user_realname": "毛可旭",
-        "user_no": "1775"
-    },
-    {
-        "user_realname": "吴琼伊",
-        "user_no": "1774"
-    },
-    {
-        "user_realname": "张潘菲",
-        "user_no": "1773"
-    },
-    {
-        "user_realname": "张娇怡",
-        "user_no": "1772"
-    },
-    {
-        "user_realname": "吴佳骏",
-        "user_no": "1771"
-    },
-    {
-        "user_realname": "柳子轩",
-        "user_no": "1770"
-    },
-    {
-        "user_realname": "蓝南轩",
-        "user_no": "1769"
-    },
-    {
-        "user_realname": "包旭东",
-        "user_no": "1768"
-    },
-    {
-        "user_realname": "林子豪",
-        "user_no": "1767"
-    },
-    {
-        "user_realname": "张文斌",
-        "user_no": "1766"
-    },
-    {
-        "user_realname": "周乐语",
-        "user_no": "1765"
-    },
-    {
-        "user_realname": "陈文俊",
-        "user_no": "1764"
-    },
-    {
-        "user_realname": "陈雅芬",
-        "user_no": "1763"
-    },
-    {
-        "user_realname": "程鑫萱",
-        "user_no": "1762"
-    },
-    {
-        "user_realname": "陈依诺",
-        "user_no": "1761"
-    },
-    {
-        "user_realname": "蓝佳妮",
-        "user_no": "1760"
-    },
-    {
-        "user_realname": "孔骏毅",
-        "user_no": "1759"
-    },
-    {
-        "user_realname": "徐蓉",
-        "user_no": "1758"
-    },
-    {
-        "user_realname": "吴雨凡",
-        "user_no": "1757"
-    },
-    {
-        "user_realname": "钟宇涵",
-        "user_no": "1756"
-    },
-    {
-        "user_realname": "郑博鑫",
-        "user_no": "1755"
-    },
-    {
-        "user_realname": "张艺",
-        "user_no": "1754"
-    },
-    {
-        "user_realname": "张轩菱",
-        "user_no": "1753"
-    },
-    {
-        "user_realname": "柳哲滨",
-        "user_no": "1752"
-    },
-    {
-        "user_realname": "余丽杰",
-        "user_no": "1751"
-    },
-    {
-        "user_realname": "雷一涛",
-        "user_no": "1750"
-    },
-    {
-        "user_realname": "梅跃飞",
-        "user_no": "1749"
-    },
-    {
-        "user_realname": "张灵杰",
-        "user_no": "1748"
-    },
-    {
-        "user_realname": "梅景卿",
-        "user_no": "1747"
-    },
-    {
-        "user_realname": "林云坡",
-        "user_no": "1746"
-    },
-    {
-        "user_realname": "雷博杰",
-        "user_no": "1745"
-    },
-    {
-        "user_realname": "范甜甜",
-        "user_no": "1744"
-    },
-    {
-        "user_realname": "雷岚京",
-        "user_no": "1743"
-    },
-    {
-        "user_realname": "蓝宇芯",
-        "user_no": "1742"
-    },
-    {
-        "user_realname": "杜王凯",
-        "user_no": "1741"
-    },
-    {
-        "user_realname": "鲍嘉翼",
-        "user_no": "1740"
-    },
-    {
-        "user_realname": "林淑琪",
-        "user_no": "1739"
-    },
-    {
-        "user_realname": "李文倩",
-        "user_no": "1738"
-    },
-    {
-        "user_realname": "刘嘉琪",
-        "user_no": "1737"
-    },
-    {
-        "user_realname": "毛华松",
-        "user_no": "1736"
-    },
-    {
-        "user_realname": "夏兢谦",
-        "user_no": "1735"
-    },
-    {
-        "user_realname": "胡俊森",
-        "user_no": "1734"
-    },
-    {
-        "user_realname": "叶晓烨",
-        "user_no": "1733"
-    },
-    {
-        "user_realname": "雷琪",
-        "user_no": "1732"
-    },
-    {
-        "user_realname": "蓝珍娟",
-        "user_no": "1731"
-    },
-    {
-        "user_realname": "蓝筱雪",
-        "user_no": "1730"
-    }
-]

+ 0 - 39
feature.md

@@ -1,39 +0,0 @@
-# 7-27
-1. 校端教学-考场排座-考场设置 导入成功但无效
-
-学校总课表》年级总课表》-教师课表分配-》教师总课表
-数据来源 学校总课表 课程管理下可控制
-
-
-# 7-28
-
-<C:\Users\EDY\Desktop\create-template\src\pages\xdjx\kbgl\jskb\index.vue>
-/xdjx/kbgl_jskb/index
-  'xkj_jsbh': string; // 教师编号
-  'xjj_zgbh':string // 职工编号
-
-<C:\Users\EDY\Desktop\create-template\src\pages\xdjx\jsrkgl\kcgl.vue>
-/xdjx/jsrkgl_kcgl
- xjj_zgbh 无用
-
-
-# 7-29
-<C:\Users\EDY\Desktop\create-template\src\pages\xdjx\stxkgl\xktj\tjsh.vue>
-<C:\Users\EDY\Desktop\create-template\src\pages\xdjx\stxkgl\xktj\xkqk.vue>
-xdjx/stxkgl_xktj_tjsh 审核通过 未回写
-
-社团 上课评价 需加新接口
-
-<C:\Users\EDY\Desktop\create-template\src\pages\xdjx\kcpzgl\kcpz\index.vue>
-1. /xdjx/kcpzgl_kcpz/index
-考生设置数据量大,需要处理
-2. 考场时间和考试监考老师页面合并? 或自动分配,或remote时url换成监考老师页面接口
-3. 考试科目走 学业评价管理 考试科目设置
-
-<src\pages\xdjx\kcpzgl\xsgl.vue>
-学生管理无用 对应标书 考生搜索
-
-# 7-30
- /xdjx/tdkgl_wdtdk/index xtw_shzt 待审核
-
- 

+ 0 - 2
plop/config.mjs

@@ -1,2 +0,0 @@
-export const BASE_URL_API = "http://jnjymf_api.bozedu.top"
-

+ 0 - 134
plop/example/btn.mjs

@@ -1,134 +0,0 @@
-const queryFormBtnList = [
-  {
-    name: 'search',
-    label: '搜索',
-    type: 'primary',
-    click: `() => {
-      queryApi()
-    }`,
-  },
-  {
-    name: 'clear',
-    label: '清空',
-    type: 'warning',
-    click: `() => {
-      queryForm_Data.value = {}
-    }`,
-  },
-]
-
-const tableRowBtnList = [
-  {
-    name: 'import',
-    $import: true,
-    label: '导入',
-    type: 'primary',
-    click: `async ({ file }: { file: File }) => {
-      const res = await API_MAP['import']({ file })
-      if(res.code === '1'){
-        queryApi()
-        ElMessage.success(res.msg)
-      }
-    }`,
-  },
-  {
-    name: 'export',
-    label: '导出',
-    type: 'success',
-    click: `() => {
-      exportApi()
-    }`,
-  },
-  {
-    name: 'add',
-    label: '新增',
-    type: 'primary',
-    click: `() => {
-      whichDialogSubmit = 'add'
-      dialogForm_Data.value = {}
-      dialogVisible_addOrEdit.value = true
-    }`,
-  },
-  {
-    name: 'delete',
-    label: '删除',
-    type: 'danger',
-    click: `async () => {
-      await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY]))
-      queryApi()
-    }`,
-  },
-]
-
-const tableColBtnList = [
-  {
-    name: 'edit',
-    label: '编辑',
-    type: 'primary',
-    click: `async (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      const res = await detailApi(scope.row[TABLE_KEY])
-      dialogForm_Data.value = (res.data.one_info)
-      dialogVisible_addOrEdit.value = true
-    }`,
-  },
-  {
-    name: 'audit',
-    label: '审核',
-    type: 'primary',
-    click: `(scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      dialogForm_Data.value = pick(scope.row, [\`\${TABLE_KEY}\`, ...Object.keys(dialogForm_Rules_audit)])
-      dialogVisible_audit.value = true
-    }`,
-  },
-  {
-    name: 'detail',
-    label: '详情',
-    type: 'primary',
-    click: `(scope:{row:TYPE_TABLE_FIELD}) => {
-      router.push({ name:DetailName, params:{ [DetailParam]:scope.row[TABLE_KEY]} })
-    }`,
-  },
-  {
-    name: 'delete',
-    label: '删除',
-    type: 'primary',
-    click: `async (scope:{row:TYPE_TABLE_FIELD}) => {
-      await deleteApi(scope.row[TABLE_KEY])
-      queryApi()
-    }`,
-  },
-]
-
-const dialogFormBtnList = [
-  {
-    name: 'submit',
-    label: '提交',
-    type: 'primary',
-    click: `async (formRefKey:string,extendData?:Partial<TYPE_TABLE_FIELD>) => {
-      const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid:boolean) => valid)
-      if (isValid) {
-        await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({...dialogForm_Data.value,...extendData}))
-        handleDialogFormBtn_cancel()
-        queryApi()
-      }
-    }`,
-  },
-  {
-    name: 'cancel',
-    label: '取消',
-    type: 'default',
-    click: `(formRefKey?:string) => {
-      dialogVisible_addOrEdit.value = false
-      dialogVisible_audit.value = false
-    }`,
-  },
-]
-
-export default {
-  queryFormBtnList,
-  tableColBtnList,
-  tableRowBtnList,
-  dialogFormBtnList,
-}

+ 0 - 22
plop/example/routes.d.ts

@@ -1,22 +0,0 @@
-import { RouteRecordRaw } from 'vue-router';
-type OriginRoutes = Array<OriginRecordRaw>
-
-type OriginRecordRaw = {
-  path: string,
-  name: string,
-  meta: {
-    hidden: boolean,
-    breadcrumb: boolean,
-    title: string,
-    sort: number
-  },
-  children: OriginRoutes,
-  plop: {
-    url: string,
-    type: 'single' | 'multi' | 'tab' | 'index',
-    filePath: string
-  }
-}
-
-type TargetRoutes = RouteRecordRaw[]
-

+ 0 - 20
plop/example/routes.mjs

@@ -1,20 +0,0 @@
-import { origin2target } from '../utils/route.mjs';
-
-import xdhq from './routes/xdhq.mjs';
-import xdjy from './routes/xdjy.mjs';
-import xdjx from './routes/xdjx.mjs';
-
-export const originRoutes = { xdhq, xdjy, xdjx }
-
-export const RoutesTitle = {
-  xdhq: "校端后勤管理系统",
-  xdjy: "校端教研管理系统",
-  xdjx: "校端教务学业管理系统"
-}
-
-
-export default {
-  xdhq: origin2target(xdhq, '/xdhq'),
-  // xdjy: origin2target(xdjy, '/xdjy'),
-  // xdjx: origin2target(xdjx, '/xdjx')
-} 

+ 0 - 223
plop/example/routes/xdhq.mjs

@@ -1,223 +0,0 @@
-export default [
-  {
-    path: "/sbbx",
-    // name: "xdhq_hqgl_sbbx",
-    children: [
-      {
-        path: "",
-        meta: {
-          title: "设备报修"
-        },
-        plop: {
-          url: "/xdhq/hqgl_sbbx"
-        }
-      },
-      {
-        path: "bxw/:aid",
-        meta: {
-          title: "被维修",
-          hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_xcglbwx",
-        },
-      }
-    ]
-  },
-  {
-    path: "/sbsg",
-    // name: "xdhq_hqgl_sbsg",
-    children: [
-      {
-        path: "",
-        meta: {
-          title: "设备申购"
-        },
-        plop: {
-          url: "/xdhq/hqgl_sbsg"
-        }
-      },
-      {
-        path: "detail/:aid",
-        meta: {
-          title: "设备申购详情",
-          hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_sbsg",
-          type: "detail"
-        },
-      }
-    ]
-  },
-  {
-    path: "/zyyy",
-    // name: "xdhq_hqgl_zyyy",
-    children: [
-      {
-        path: "cdlbgl",
-        meta: {
-          title: "场地类别管理",
-          // hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_zyyylb"
-        }
-      },
-      {
-        path: "cdgl",
-        meta: {
-          title: "场地管理",
-          // hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_zyyyzy"
-        }
-      },
-      {
-        path: "yygl",
-        meta: {
-          title: "预约管理",
-          // hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_zyyyzy"
-        }
-      },
-      {
-        path: "shgl",
-        meta: {
-          title: "审核管理",
-          // hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_zyyy"
-        }
-      },
-    ],
-    meta: {
-      title: "资源预约"
-    },
-    plop: {
-      // type: "tab"
-    }
-  },
-  {
-    path: "/xcgl",
-    // name: "xdhq_hqgl_xcgl",
-    children: [
-      {
-        path: "xcgllb",
-        meta: {
-          title: "校产类别管理",
-          // hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_xcgllb"
-        }
-      },
-      {
-        path: "xcgl",
-        meta: {
-          title: "校产管理",
-          // hidden: true
-        },
-        // plop: {
-        //   url: "/xdhq/hqgl_xcgl"
-        // },
-        children: [
-          {
-            path: "",
-            meta: {
-              title: "校产管理"
-            },
-            plop: {
-              url: "/xdhq/hqgl_xcgl"
-            }
-          },
-          {
-            path: "bjl/:aid",
-            meta: {
-              title: "被借领",
-              hidden: true
-            },
-            plop: {
-              url: "/xdhq/hqgl_xcglbjl",
-            },
-          }, {
-            path: "bxw/:aid",
-            meta: {
-              title: "被维修",
-              hidden: true
-            },
-            plop: {
-              url: "/xdhq/hqgl_xcglbwx",
-            },
-          }
-        ]
-      },
-    ],
-    meta: {
-      title: "校产管理"
-    },
-    plop: {
-      // type: "tab"
-    }
-  },
-  {
-    path: "/jyly",
-    // name: "xdhq_hqgl_jyly",
-    children: [
-      {
-        path: "xclb",
-        meta: {
-          title: "校产列表",
-          // hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_xcgl"
-        }
-      },
-      {
-        path: "jylb",
-        meta: {
-          title: "借用列表",
-          // hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_jyly"
-        }
-      },
-      {
-        path: "lylb",
-        meta: {
-          title: "领用列表",
-          // hidden: true
-        },
-        plop: {
-          url: "/xdhq/hqgl_jyly"
-        }
-      },
-    ],
-    meta: {
-      title: "借用领用"
-    },
-    plop: {
-      // type: "tab"
-    }
-  },
-  {
-    path: "/splcsz",
-    children: [
-      {
-        path: "",
-        meta: {
-          title: "审批流程设置"
-        },
-        plop: {
-          url: "/xdhq/hqgl_splcsz"
-        }
-      }
-    ]
-  },
-]

文件差异内容过多而无法显示
+ 0 - 1060
plop/example/routes/xdjx.mjs


+ 0 - 125
plop/example/routes/xdjy.mjs

@@ -1,125 +0,0 @@
-export default [
-  {
-    path: "/qjygl",
-    children: [
-      {
-        path: "zyxxlb",
-        meta: { title: "资源信息列表" },
-        plop: {
-          // url: "/xdjy/qjygl_zyxxlb"
-        },
-        children: [
-          {
-            path: "",
-            meta: {
-              title: "资源信息列表"
-            },
-            plop: {
-              url: "/xdjy/qjygl_zyxxlb"
-            },
-          },
-          {
-            path: "detail/:aid",
-            meta: {
-              title: "资源信息列表详情",
-              hidden: true
-            },
-            plop: {
-              url: "/xdjy/qjygl_zyxxlb",
-              type: "detail"
-            },
-          }
-        ]
-      },
-      {
-        path: "zytj",
-        meta: { title: "资源统计" },
-        plop: {
-          url: "/xdjy/qjygl_zytj"
-        }
-      },
-    ],
-    meta: { title: "区教研管理" },
-  },
-  {
-    path: "/wljy",
-    children: [
-      {
-        path: "kclb",
-        meta: { title: "课程列表" },
-        plop: {
-          // url: "/xdjy/wljy_kclb"
-        },
-        children: [
-          {
-            path: "",
-            meta: {
-              title: "课程列表"
-            },
-            plop: {
-              url: "/xdjy/wljy_kclb"
-            },
-          },
-          {
-            path: "detail/:aid",
-            meta: {
-              title: "课程列表详情",
-              hidden: true
-            },
-            plop: {
-              url: "/xdjy/wljy_kclb",
-              type: "detail"
-            },
-          },
-          {
-            path: "detail2/:aid",
-            meta: {
-              title: "课程列表详情2",
-              hidden: true
-            },
-            plop: {
-              url: "/xdjy/wljy_kc_kkjl",
-            },
-          }
-        ]
-      },
-      {
-        path: "jpklmgl",
-        meta: { title: "精品课栏目管理" },
-        plop: {
-          url: "/xdjy/wljy_jpklmgl"
-        }
-      },
-      {
-        path: "jpkc",
-        meta: { title: "精品课程" },
-        plop: {
-          // url: "/xdjy/wljy_jpkc"
-        },
-        children: [
-          {
-            path: "",
-            meta: {
-              title: "精品课程"
-            },
-            plop: {
-              url: "/xdjy/wljy_jpkc"
-            },
-          },
-          {
-            path: "detail/:aid",
-            meta: {
-              title: "精品课程详情",
-              hidden: true
-            },
-            plop: {
-              url: "/xdjy/wljy_jpkc",
-              type: "detail"
-            },
-          }
-        ]
-      },
-    ],
-    meta: { title: "网络教研" },
-  },
-]

+ 0 - 74
plop/generator/index copy.mjs

@@ -1,74 +0,0 @@
-import request from '../utils/request.mjs';
-import { initFields } from '../utils/field.mjs';
-import btnList from '../example/btn.mjs';
-import allRoutes from '../example/routes.mjs';
-import fs from 'fs';
-
-export default {
-  prompts: [],
-  actions: (prompts) => {
-
-    const routes = allRoutes
-    const RoutePlopList = []
-    return [
-      {
-        type: 'add',
-        path: 'src/router/routes.ts',
-        templateFile: 'plop/template/routes.ts.hbs',
-        data: {
-          routes: JSON.stringify(routes, (key, value) => {
-            if (['plop'].includes(key)) {
-              RoutePlopList.push(value)
-              return undefined
-            }
-            return value
-          }, 2).replaceAll(/"___|___"/g, '')
-        }
-      },
-      function () {
-        fs.rmSync(`src/pages`, { recursive: true, force: true })
-        return `-- \\src\\pages`
-      },
-      ...RoutePlopList.map(RoutePlop => ({
-        type: 'add',
-        path: `src/pages/${RoutePlop.filePath}.vue`,
-        templateFile: `plop/template/${RoutePlop.template}.vue.hbs`,
-        data: async () => {
-          console.log('RoutePlop. :>> ', RoutePlop.url);
-          switch (RoutePlop.template) {
-            case 'index': {
-              const res = await request(RoutePlop.url + '/index')
-              const fields = initFields(res.data)
-              return {
-                url: RoutePlop.url,
-                ...btnList,
-                ...fields,
-                detailName: RoutePlop.routeName.replaceAll('INDEX', 'DETAIL')
-              }
-            }
-            case 'tab': {
-              return {
-                tab_list: RoutePlop.children
-              }
-            }
-            case 'detail': {
-              const res = await request(RoutePlop.url + '/index')
-              const fields = initFields(res.data)
-
-              return {
-                url: RoutePlop.url,
-                ...fields
-              }
-            }
-            default: {
-              return {}
-            }
-          }
-        }
-      }))
-    ]
-
-
-  }
-}
-

+ 0 - 88
plop/generator/index.mjs

@@ -1,88 +0,0 @@
-import request from '../utils/request.mjs';
-import { initFields } from '../utils/field.mjs';
-import btnList from '../example/btn.mjs';
-import allRoutes, { RoutesTitle } from '../example/routes.mjs';
-import fs from 'fs';
-
-export default {
-  prompts: [],
-  actions: (prompts) => {
-    return [
-      // function () {
-      //   fs.rmSync(`src/router/routes`, { recursive: true, force: true })
-      //   return `-- \\src\\router\\routes`
-      // },
-      // function () {
-      //   fs.rmSync(`src/pages`, { recursive: true, force: true })
-      //   return `-- \\src\\pages`
-      // },
-    ].concat(...Object.keys(allRoutes).map(rKey => {
-      const routes = allRoutes[rKey]
-      const RoutePlopList = []
-      return [
-        {
-          type: 'add',
-          path: `src/router/routes/${rKey}.ts`,
-          templateFile: 'plop/template/routes.ts.hbs',
-          data: {
-            title: RoutesTitle[rKey],
-            routes: JSON.stringify(routes, (key, value) => {
-              if (['plop'].includes(key)) {
-                RoutePlopList.push(value)
-                return undefined
-              }
-              return value
-            }, 2).replaceAll(/"___|___"/g, '').replaceAll("~/pages", `~/pages/${rKey}`)
-          }
-        },
-        ...RoutePlopList.map(RoutePlop => ({
-          type: 'add',
-          path: `src/pages/${rKey}/${RoutePlop.filePath}.vue`,
-          templateFile: `plop/template/${RoutePlop.template}.vue.hbs`,
-          data: async () => {
-            console.log('\x1b[33m%s\x1b[0m', 'RoutePlop :>> ', RoutePlop.template, RoutePlop.filePath, RoutePlop.props);
-            switch (RoutePlop.template) {
-              case 'index': {
-                const res = await request(RoutePlop.url + '/index')
-                console.log('> request ', RoutePlop.url + '/index', ' status: ', res.data.code);
-                const fields = initFields(res.data)
-                return {
-                  url: RoutePlop.url,
-                  props: RoutePlop.props,
-                  ...btnList,
-                  ...fields,
-                  detailName: RoutePlop.routeName.replaceAll('INDEX', 'DETAIL'),
-                  // start from aid, then bid;cid....
-                  detailParam: String.fromCodePoint(97 + (RoutePlop.props?.length ?? 0)) + 'id'
-                }
-              }
-              case 'tab': {
-                console.log('tab_list :>> ', RoutePlop.children);
-                return {
-                  tab_list: RoutePlop.children
-                }
-              }
-              case 'detail': {
-                const res = await request(RoutePlop.url + '/index')
-                const fields = initFields(res.data)
-
-                return {
-                  url: RoutePlop.url,
-                  props: RoutePlop.props,
-                  detailParam: RoutePlop.props.at(-1),
-                  ...fields
-                }
-              }
-              default: {
-                return {}
-              }
-            }
-          }
-        }))
-      ]
-    }))
-
-
-  }
-}
-

+ 0 - 29
plop/partial/FormItem.mjs

@@ -1,29 +0,0 @@
-export default (ctx) => {
-  switch (ctx.type) {
-    case 'input':
-      return `<el-input v-model="${ctx.form}.${ctx.value}" clearable />`
-    case 'textarea':
-    case 'air_textarea':
-      return `<el-input v-model="${ctx.form}.${ctx.value}" type="textarea" />`
-    case 'number':
-      return `<el-input-number v-model="${ctx.form}.${ctx.value}" :precision="0" :min="0" :max="Infinity" :controls="false" controls-position="right" />`
-    case 'select':
-      return `<el-select v-model="${ctx.form}.${ctx.value}" clearable filterable >${ctx.option.map(({ n, v }) => `<el-option label="${n}" value="${v}" />`).join('')}</el-select>`
-    case 'checkbox':
-      return `<el-checkbox-group v-model="${ctx.form}.${ctx.value}">${ctx.option.map(({ n, v }) => `<el-checkbox label="${v}">${n}</el-checkbox>`).join('')}</el-checkbox-group>`
-    case 'radio':
-      return `<el-radio-group v-model="${ctx.form}.${ctx.value}">${ctx.option.map(({ n, v }) => `<el-radio label="${v}">${n}</el-radio>`).join('')}</el-radio-group>`
-    case 'datetime':
-      return `<el-date-picker type="${ctx.type}" v-model="${ctx.form}.${ctx.value}" value-format="YYYY-MM-DD HH:mm:ss" clearable />`
-    case 'date':
-      return `<el-date-picker type="${ctx.type}" v-model="${ctx.form}.${ctx.value}" value-format="YYYY-MM-DD" clearable />`
-    case 'month':
-    case 'year':
-      return `<el-date-picker type="${ctx.type}" v-model="${ctx.form}.${ctx.value}" value-format="YYYY-MM-DD HH:mm:ss" clearable />`
-    case 'file':
-    case 'mfile':
-      return `<file-upload v-model:part="${ctx.form}.${ctx.value}" />`
-    default:
-      return `<span v-model="${ctx.form}.${ctx.value}"> ${ctx.type} 为不支持的格式</span>`
-  }
-}

+ 0 - 66
plop/template/detail.vue.hbs

@@ -1,66 +0,0 @@
-<script setup lang="ts">
-import { ref } from "vue";
-import request, { download } from '~/utils/request';
-
-// #region (constant)
-const TABLE_KEY = '{{tableKey}}'
-const URL_CUT = '{{url}}'
-// #endregion
-
-// #region (type)
-type TYPE_TABLE_FIELD = {
-  [TABLE_KEY]: string;
-  {{#each tableColFields}}
-  '{{prop}}': string; // {{label}}
-  {{/each}}
-}
-// #endregion
-
-// #region (variable)
-const loading = ref(true)
-// #endregion
-
-// #region (props)
-{{#if props}}
-const props = defineProps<{
-  {{#each props}}
-  {{this}}: string,
-  {{/each}}
-}>()
-{{/if}}
-// #endregion
-
-function detailApi(_id: string) {
-  return request({
-    url: URL_CUT + '/detail',
-    data: {
-      [TABLE_KEY]: _id,
-    }
-  })
-}
-
-const detail_Data = ref<TYPE_TABLE_FIELD>()
-
-// #region (page init)
-async function init() {
-  const res = await detailApi(props.{{detailParam}})
-  detail_Data.value = (res.data.one_info)
-  loading.value = false
-}
-init()
-// #endregion
-
-</script>
-
-<template>
-  <div :loading="loading">
-    <template v-if="detail_Data">
-      {{#each tableColFields}}
-      <div class="flex">
-        <div>{{label}}</div><div>{{> Mustache obj="detail_Data" }}</div>
-      </div>
-      {{/each}} 
-    </template>      
-  </div>
-
-</template>

+ 0 - 298
plop/template/index.vue.hbs

@@ -1,298 +0,0 @@
-<script setup lang="ts">
-import { ref, getCurrentInstance, reactive } from "vue";
-import { useRouter } from "vue-router";
-import request, { download } from '~/utils/request';
-import { pick } from 'lodash-es';
-import { ElMessage } from 'element-plus'
-import type { FormInstance, FormRules } from 'element-plus'
-import type { AxiosRequestConfig } from 'axios'
-
-// #region (constant)
-const TABLE_KEY = '{{tableKey}}'
-const URL_CUT = '{{url}}'
-const URL_CUT_REF = ref(URL_CUT)
-const URL_SUBMIT_KEY = URL_CUT.split('/').join('_').slice(1)
-const instance = getCurrentInstance()
-const router = useRouter()
-// #endregion
-
-// #region (variable)
-const loading_table = ref(true)
-let whichDialogSubmit:'add'|'edit'
-// #endregion
-
-// #region (type)
-type TYPE_TABLE_FIELD = {
-  [TABLE_KEY]: string;
-  {{#each tableColFields}}
-  '{{prop}}': string; // {{label}}
-  {{/each}}
-}
-// #endregion
-
-// #region (props)
-{{#if props}}
-const props = defineProps<{
-  {{#each props}}
-  {{this}}: string,
-  {{/each}}
-}>()
-{{/if}}
-// #endregion
-
-// #region (query row)
-const queryForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
-
-{{#each queryFormBtnList}}
-const handleQueryFormBtn_{{name}} = {{{click}}}
-{{/each}}
-// #endregion
-
-// #region (table selection)
-const multipleSelection = ref<TYPE_TABLE_FIELD[]>([])
-const handleSelectionChange = (val:TYPE_TABLE_FIELD[]) => {
-  multipleSelection.value = val
-}
-// #endregion
-
-// #region (table row)
-{{#each tableRowBtnList}}
-const handleTableRowBtn_{{name}} = {{{click}}}
-{{/each}}
-// #endregion
-
-// #region (table body)
-const tableData = ref<TYPE_TABLE_FIELD[]>([])
-const DetailName = '{{detailName}}'
-const DetailParam = '{{detailParam}}'
-
-{{#each tableColBtnList}}
-const handleTableColBtn_{{name}} = {{{click}}}
-{{/each}}
-// #endregion
-
-// #region (pagination)
-const total = ref(0)
-const limit = ref(10)
-
-const currentPage=ref(1) 
-function handleCurrentChange(){
-  queryApi()
-}
-// #endregion
-
-// #region (dialog base)
-const dialogForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
-
-{{#each dialogFormBtnList}}
-const handleDialogFormBtn_{{name}} = {{{click}}}
-{{/each}}
-// #endregion
-
-// #region (dialog add/edit)
-const dialogVisible_addOrEdit = ref<boolean>(false)
-
-const dialogForm_Ref_addOrEdit= ref<FormInstance>()
-const dialogForm_Rules_addOrEdit = reactive({ 
-  {{#each dialogFormFields}}
-  '{{value}}':{required : true,message:'{{label}}不能为空',trigger:'submit'},
-  {{/each}}
-})
-// #endregion
-
-// #region (dialog audit)
-const dialogVisible_audit = ref<boolean>(false)
-
-const dialogForm_Field_audit= reactive<{
-  FLAG:keyof TYPE_TABLE_FIELD,
-  REASON?:keyof TYPE_TABLE_FIELD
-}>({
-  FLAG:'{{tableKey}}',
-  // REASON:'{{tableKey}}'
-})
-
-const dialogForm_Ref_audit= ref<FormInstance>()
-const dialogForm_Rules_audit = reactive<FormRules>({ 
-  {{#each dialogFormFields}}
-  '{{value}}':{required : true ,message:'{{label}}不能为空',trigger:'submit'},
-  {{/each}}
-})
-
-// #endregion
-
-// #region (request api): 
-function queryApi(){
-  loading_table.value = true
-  return request({
-    url: URL_CUT + '/index',
-    data: {
-      ...queryForm_Data.value,
-      limit: limit.value,
-      page: currentPage.value
-    }
-  }).then((response:{data:{total_rows:string,page_data:TYPE_TABLE_FIELD[]}}) => {
-    const { data } = response
-    total.value = parseInt(data.total_rows)
-    tableData.value = data.page_data
-    return response
-  }).then(() => {
-    loading_table.value = false
-  })
-}
-
-function addApi(data:TYPE_TABLE_FIELD){
-  return request({
-    url: URL_CUT + '/add',
-    data: {
-      [URL_SUBMIT_KEY]:data,
-    }
-  })
-}
-
-function editApi(data:Partial<TYPE_TABLE_FIELD>){
-  return request({
-    url: URL_CUT + '/edit',
-    data: {
-      [TABLE_KEY]:data[TABLE_KEY],
-      [URL_SUBMIT_KEY]:pick(data,[{{#each dialogFormFields}}'{{value}}',{{/each}}]),
-    }
-  })
-}
-
-function deleteApi(id:string|string[]){
-  return request({
-    url: URL_CUT + '/delete',
-    data: {
-      [TABLE_KEY]:id,
-    }
-  })
-}
-
-function detailApi(id:string){
-  return request({
-    url: URL_CUT + '/detail',
-    data: {
-      [TABLE_KEY]:id,
-    }
-  })
-}
-
-function importApi(data:{file:File}){  
-  return request({
-    $type: 'import',
-    url: URL_CUT + '/import',
-    data
-  } as AxiosRequestConfig)
-}
-
-function exportApi(){
-  return download(URL_CUT + '/index', queryForm_Data.value)
-}
-
-const API_MAP = {
-  query:queryApi,
-  add:addApi,
-  edit:editApi,
-  delete:deleteApi,
-  detail:detailApi,
-  import:importApi,
-  export:exportApi,
-}
-// #endregion
-
-// #region (page init)
-function init(){
-  queryApi()
-}
-init()
-// #endregion
-
-</script>
-
-<template>
-  <div class="card flex-grow flex flex-col">
-    <el-form inline :model="queryForm_Data">
-      <!-- <el-form-item label="关键字"><el-input v-model="queryForm_Data.keyword" ></el-input></el-form-item> -->
-      {{#each queryFormFields}}
-      <el-form-item label="{{label}}">{{> WhichFormItem form="queryForm_Data"}}</el-form-item>
-      {{/each}}
-      {{#if queryFormBtnList}}
-      <el-form-item>
-        {{#each queryFormBtnList}}
-        <el-button @click="handleQueryFormBtn_{{name}}" type="{{type}}">{{ label }}</el-button>
-        {{/each}}
-      </el-form-item>
-      {{/if}}
-    </el-form>
-    <div class="divider"></div>
-    <div>
-      {{#each tableRowBtnList}}
-        {{#if (equals $import true)}}
-        <import-button :url="URL_CUT_REF"></import-button>
-        {{else}}
-        <el-button @click="handleTableRowBtn_{{name}}" type="{{type}}">{{ label }}</el-button>
-        {{/if}}
-      {{/each}}
-    </div>
-
-    <div class="divider"></div>
-    <div class="flex-auto">
-      <el-table :data="tableData" @selection-change="handleSelectionChange" v-loading="loading_table"
-        element-loading-background="#ffffff70">
-        <el-table-column type="selection"></el-table-column>
-        {{#each tableColFields}}
-        <el-table-column prop="{{prop}}" label="{{label}}" width="auto" show-overflow-tooltip></el-table-column>
-        {{/each}}
-        {{#if tableColBtnList}}
-        <el-table-column label="操作" fixed="right">
-          <template #default="scope">
-            {{#each tableColBtnList}}
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_{{name}}(scope)" type="{{type}}" >{{
-              label }}</el-button>
-            {{/each}}
-          </template>
-        </el-table-column>
-        {{/if}}
-      </el-table>
-    </div>
-
-    <div class="flex justify-end mt-10 py-4">
-      <el-pagination :page-size="limit" v-model:current-page="currentPage" @current-change="handleCurrentChange"
-        background layout="total, prev, pager, next" :total="total" />
-    </div>
-  </div>
-
-  <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit" label-width="120px">
-      {{#each dialogFormFields}}
-      <el-form-item label="{{label}}" prop="{{value}}">{{> WhichFormItem form="dialogForm_Data"}}</el-form-item>
-      {{/each}}
-      {{#if dialogFormBtnList}}
-      <div class="flex justify-center">
-        {{#each dialogFormBtnList}}
-        <el-button @click="handleDialogFormBtn_{{name}}('dialogForm_Ref_addOrEdit')" type="{{type}}">{{ label }}</el-button>
-        {{/each}}
-      </div>
-      {{/if}}
-    </el-form>
-  </el-dialog>
-
-  <el-dialog v-model="dialogVisible_audit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_audit" :rules="dialogForm_Rules_audit" label-width="120px">
-      <el-form-item label="状态">
-        <el-radio-group v-model="dialogForm_Data[dialogForm_Field_audit.FLAG]">
-          <el-radio label="1">通过</el-radio>
-          <el-radio label="2">未通过</el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <!-- <el-form-item label="原因" v-show="dialogForm_Data[dialogForm_Field_audit.FLAG] === '1'">
-        <el-input type="textarea" v-model="dialogForm_Data[dialogForm_Field_audit.REASON]" :rows="5" />
-      </el-form-item> -->
-      <div class="flex justify-center">
-        {{#each dialogFormBtnList}}
-        <el-button @click="handleDialogFormBtn_{{name}}('dialogForm_Ref_audit')" type="{{type}}">{{ label }}</el-button>
-        {{/each}}
-      </div>
-    </el-form>
-  </el-dialog>
-</template>

+ 0 - 3
plop/template/multi.vue.hbs

@@ -1,3 +0,0 @@
-<template>
-  <router-view></router-view>
-</template>

+ 0 - 4
plop/template/routes.ts.hbs

@@ -1,4 +0,0 @@
-import { RouteRecordDetailRaw } from '../routes.d';
-document.title = "{{title}}"
-
-export default <RouteRecordDetailRaw[]>{{{routes}}}

+ 0 - 37
plop/template/tab.vue.hbs

@@ -1,37 +0,0 @@
-<script setup>
-import { ref } from 'vue';
-import { useRouter,useRoute } from 'vue-router'
-const router = useRouter()
-const route = useRoute()
-
-// #region (props)
-// {{props}}
-{{#if props}}
-const props = defineProps<{
-  {{#each props}}
-  {{this}}: string,
-  {{/each}}
-}>()
-{{/if}}
-// #endregion
-
-function handleTabChange(name) {
-  router.push({ name })
-}
-
-const activeName = ref(route.name)
-</script>
-
-<template>
-  <div class="w-full h-full">
-    <div class="card mb-2">
-      <el-tabs v-model="activeName" @tab-change="handleTabChange">
-        {{#each tab_list}}
-          <el-tab-pane label="{{title}}" name="{{name}}"></el-tab-pane>
-        {{/each}}
-      </el-tabs>
-    </div>
-
-    <router-view />
-  </div>
-</template>

+ 0 - 88
plop/template/template.html.hbs

@@ -1,88 +0,0 @@
-<template>
-  <div class="card flex-grow flex flex-col">
-    <el-form inline :model="queryFormData">
-      {{#each queryFormFields}}
-      <el-form-item label="{{label}}">{{> WhichFormItem form="queryFormData"}}</el-form-item>
-      {{/each}}
-      {{#if (equals $import true)}}
-      <el-form-item>
-        {{#each queryFormBtnList}}
-        <el-button @click="handleQueryFormBtn_{{name}}" type="{{type}}">{{ label }}</el-button>
-        {{/each}}
-      </el-form-item>
-      {{/if}}
-    </el-form>
-    <div class="divider"></div>
-    <div>
-      {{#each tableRowBtnList}}
-      <el-button @click="handleTableRowBtn_{{name}}" type="{{type}}">{{ label }}</el-button>
-      {{/each}}
-    </div>
-
-    <div class="divider"></div>
-    <div class="flex-auto">
-      <el-table :data="tableData" @selection-change="handleSelectionChange" v-loading="loading"
-        element-loading-background="#ffffff70">
-        <el-table-column type="selection"></el-table-column>
-        {{#each tableColFields}}
-        <el-table-column prop="{{prop}}" label="{{label}}" width="auto" show-overflow-tooltip></el-table-column>
-        {{/each}}
-        {{#if tableColBtnList}}
-        <el-table-column label="操作" fixed="right">
-          <template #default="scope">
-            {{#each tableColBtnList}}
-            <el-link @click="handleTableColBtn_{{name}}(scope)" type="{{type}}" :underline="false" class="mr-2">{{
-              label }}</el-link>
-            {{/each}}
-          </template>
-        </el-table-column>
-        {{/if}}
-      </el-table>
-    </div>
-
-    <div class="flex justify-end">
-      <el-pagination :page-size="limit" v-model:current-page="currentPage" @current-change="handleCurrentChange"
-        background layout="total, prev, pager, next" :total="total" />
-    </div>
-  </div>
-
-  <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit" label-width="120px">
-      {{#each dialogFormFields}}
-      <el-form-item label="{{label}}" prop="{{value}}">{{> WhichFormItem form="dialogForm_Data"}}</el-form-item>
-      {{/each}}
-      {{#if dialogFormBtnList}}
-      <div class="flex justify-center">
-        {{#each dialogFormBtnList}}
-        <el-button @click="handleDialogFormBtn_{{name}}('dialogForm_Ref_addOrEdit')" type="{{type}}">{{ label }}</el-button>
-        {{/each}}
-      </div>
-      {{/if}}
-    </el-form>
-  </el-dialog>
-
-  <el-dialog v-model="dialogVisible_audit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_audit" :rules="dialogForm_Rules_audit" label-width="120px">
-      <el-form-item label="状态">
-        <el-radio-group v-model="dialogForm_Data[dialogForm_Field_audit.FLAG]">
-          <el-radio :label="0">通过</el-radio>
-          <el-radio :label="1">未通过</el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <el-form-item label="原因" v-show="dialogForm_Data[dialogForm_Field_audit.FLAG] === 1">
-        <el-input type="textarea" v-model="dialogForm_Data[dialogForm_Field_audit.REASON]" :rows="5" />
-      </el-form-item>
-      <div class="flex justify-center">
-        {{#each dialogFormBtnList}}
-        <el-button @click="handleDialogFormBtn_{{name}}('dialogForm_Ref_audit')" type="{{type}}">{{ label }}</el-button>
-        {{/each}}
-      </div>
-    </el-form>
-  </el-dialog>
-</template>
-
-
-        <!--<el-upload :http-request="handleTableRowBtn_{{name}}" class="inline-block mr-12px">
-          <el-button type="{{type}}">{{ label }}</el-button>
-          <template #file><span></span></template>
-        </el-upload>-->

+ 0 - 55
plop/utils/field.mjs

@@ -1,55 +0,0 @@
-export function initFields(response) {
-  const queryFormFields = []
-  const tableColFields = []
-  const dialogFormFields = []
-  // console.log('response :>> ', response)
-  const {
-    data: {
-      table_structure: { table_key, field },
-    },
-  } = response
-  const tableKey = table_key
-  Object.keys(field).forEach((k) => {
-    const {
-      type,
-      label,
-      field_type,
-      tmf_filed_search_ext,
-      display,
-      tmf_form_hidden,
-    } = field[k]
-    // 作为过滤条件
-    if (true) {
-      queryFormFields.push({
-        type: ['radio', 'checkbox'].includes(type) ? 'select' : type,
-        label,
-        value: k,
-        option: field[k].option ?? [],
-      })
-    }
-    // 作为表格内容显示
-    if (true) {
-      tableColFields.push({
-        label,
-        prop: k,
-        option: field[k].option ?? [],
-      })
-    }
-    // 作为表单控制
-    if (true) {
-      dialogFormFields.push({
-        type: ['radio', 'checkbox'].includes(type) && field[k].option.length > 3 ? 'select' : type,
-        label,
-        value: k,
-        option: field[k].option ?? [],
-      })
-    }
-  })
-
-  return {
-    tableKey,
-    queryFormFields,
-    tableColFields,
-    dialogFormFields,
-  }
-}

+ 0 - 19
plop/utils/request.mjs

@@ -1,19 +0,0 @@
-import axios from 'axios';
-import { BASE_URL_API } from '../config.mjs';
-
-const token = '77f0qj6wBe_aT4tk0IsY1K6LhTe2wx_b0bo7BEKOMa5UTYf61dY_arnEKJUFUEM1BpdWY5043KnfSyAm8RcwIoojL_a_aekwKUwk'
-
-export default (url) => axios({
-  baseURL: BASE_URL_API,
-  url,
-  method: 'POST',
-  timeout: 2000,
-  headers: {
-    'Content-Type': 'application/x-www-form-urlencoded',
-  },
-  data: {
-    token,
-    api: 'json',
-    limit: 1
-  },
-})

+ 0 - 43
plop/utils/route.mjs

@@ -1,43 +0,0 @@
-function handleOriginRoute(route, idx, basePath) {
-  const fullPath = basePath === null ? route.path : basePath + '/' + (route.path || 'index')
-  const filePath = fullPath.replaceAll(/\/\:\w+/g, '')
-  // basePath === null ? route.path : basePath + '/' + (route.path.replaceAll(/\/\:\w+/g, '') || 'index')
-  const children = route?.children?.map((child, idy) => handleOriginRoute(child, idy, fullPath))
-  const routeName = route.name ?? filePath.replaceAll('/', '-').toUpperCase()
-  return ({
-    path: route.path,
-    name: routeName,
-    props: /\/\:\w+/.test(basePath + '/' + route.path),
-    meta: Object.assign({
-      hidden: false,
-      // ['tab', 'single'].includes(route?.plop?.type) || route?.children?.length === 1,
-      breadcrumb: ['tab'].includes(route?.plop?.type),
-      sort: idx,
-    }, route.meta ?? null),
-    plop: {
-      ...route?.plop,
-      filePath,
-      fullPath,
-      props: fullPath.match(/(?<=\/\:)\w+/g),
-      routeName,
-      children: children?.map(child => {
-        const { name, meta: { title } } = child.redirect ? child.children.find(({ name }) => name === child.redirect.name) : child
-        // ?.map(({ name, meta: { title } }) => ({ name, title }))
-        return {
-          name,
-          title
-        }
-      }),
-      template: route?.plop?.type ?? (route?.plop?.url ? 'index' : 'multi')
-    },
-    component: `___() => import('~/pages${filePath}.vue')___`,
-    children,
-    redirect: Array.isArray(children) ? ({ name: children[0].name }) : null
-  })
-}
-
-export function origin2target(originRoutes) {
-  const res = originRoutes.map((originRoute, idx) => handleOriginRoute(originRoute, idx, null))
-  return res
-  //[{ path: '/', redirect: res[0].path, meta: { hidden: true, sort: -1 } }].concat(res)
-}

+ 0 - 9
plopfile.mjs

@@ -1,9 +0,0 @@
-import getFormItem from './plop/partial/FormItem.mjs';
-import SingleGenerator from './plop/generator/index.mjs';
-
-export default function (plop) {
-  plop.setHelper('equals', (a, b) => a === b)
-  plop.setPartial('Mustache', ({ obj, prop }) => { return (`{{${obj}.${prop}}}`) })
-  plop.setPartial('WhichFormItem', getFormItem)
-  plop.setGenerator('singleGenerator', SingleGenerator)
-}

+ 169 - 133
src/pages/shgl/shgl/mssq/dsh.vue

@@ -18,7 +18,7 @@ const router = useRouter()
 
 // #region (variable)
 const loading_table = ref(true)
-let whichDialogSubmit:'add'|'edit'
+let whichDialogSubmit: 'add' | 'edit'
 // #endregion
 
 // #region (type)
@@ -43,40 +43,40 @@ type TYPE_TABLE_FIELD = {
 const queryForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
 const handleQueryFormBtn_search = () => {
-      queryApi()
-    }
+  queryApi()
+}
 const handleQueryFormBtn_clear = () => {
-      queryForm_Data.value = {}
-    }
+  queryForm_Data.value = {}
+}
 // #endregion
 
 // #region (table selection)
 const multipleSelection = ref<TYPE_TABLE_FIELD[]>([])
-const handleSelectionChange = (val:TYPE_TABLE_FIELD[]) => {
+const handleSelectionChange = (val: TYPE_TABLE_FIELD[]) => {
   multipleSelection.value = val
 }
 // #endregion
 
 // #region (table row)
 const handleTableRowBtn_import = async ({ file }: { file: File }) => {
-      const res = await API_MAP['import']({ file })
-      if(res.code === '1'){
-        queryApi()
-        ElMessage.success(res.msg)
-      }
-    }
+  const res = await API_MAP['import']({ file })
+  if (res.code === '1') {
+    queryApi()
+    ElMessage.success(res.msg)
+  }
+}
 const handleTableRowBtn_export = () => {
-      exportApi()
-    }
+  exportApi()
+}
 const handleTableRowBtn_add = () => {
-      whichDialogSubmit = 'add'
-      dialogForm_Data.value = {}
-      dialogVisible_addOrEdit.value = true
-    }
+  whichDialogSubmit = 'add'
+  dialogForm_Data.value = {}
+  dialogVisible_addOrEdit.value = true
+}
 const handleTableRowBtn_delete = async () => {
-      await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY]))
-      queryApi()
-    }
+  await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY]))
+  queryApi()
+}
 // #endregion
 
 // #region (table body)
@@ -84,32 +84,32 @@ const tableData = ref<TYPE_TABLE_FIELD[]>([])
 const DetailName = '-SHGL-MSSQ-DSH'
 const DetailParam = 'aid'
 
-const handleTableColBtn_edit = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      const res = await detailApi(scope.row[TABLE_KEY])
-      dialogForm_Data.value = (res.data.one_info)
-      dialogVisible_addOrEdit.value = true
-    }
-const handleTableColBtn_audit = (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
-      dialogVisible_audit.value = true
-    }
-const handleTableColBtn_detail = (scope:{row:TYPE_TABLE_FIELD}) => {
-      router.push({ name:DetailName, params:{ [DetailParam]:scope.row[TABLE_KEY]} })
-    }
-const handleTableColBtn_delete = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      await deleteApi(scope.row[TABLE_KEY])
-      queryApi()
-    }
+const handleTableColBtn_edit = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  const res = await detailApi(scope.row[TABLE_KEY])
+  dialogForm_Data.value = (res.data.one_info)
+  dialogVisible_addOrEdit.value = true
+}
+const handleTableColBtn_audit = (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
+  dialogVisible_audit.value = true
+}
+const handleTableColBtn_detail = (scope: { row: TYPE_TABLE_FIELD }) => {
+  router.push({ name: DetailName, params: { [DetailParam]: scope.row[TABLE_KEY] } })
+}
+const handleTableColBtn_delete = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  await deleteApi(scope.row[TABLE_KEY])
+  queryApi()
+}
 // #endregion
 
 // #region (pagination)
 const total = ref(0)
 const limit = ref(10)
 
-const currentPage=ref(1) 
-function handleCurrentChange(){
+const currentPage = ref(1)
+function handleCurrentChange() {
   queryApi()
 }
 // #endregion
@@ -117,74 +117,75 @@ function handleCurrentChange(){
 // #region (dialog base)
 const dialogForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
-const handleDialogFormBtn_submit = async (formRefKey:string,extendData?:Partial<TYPE_TABLE_FIELD>) => {
-      const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid:boolean) => valid)
-      if (isValid) {
-        await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({...dialogForm_Data.value,...extendData}))
-        handleDialogFormBtn_cancel()
-        queryApi()
-      }
-    }
-const handleDialogFormBtn_cancel = (formRefKey?:string) => {
-      dialogVisible_addOrEdit.value = false
-      dialogVisible_audit.value = false
-    }
+const handleDialogFormBtn_submit = async (formRefKey: string, extendData?: Partial<TYPE_TABLE_FIELD>) => {
+  const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid: boolean) => valid)
+  if (isValid) {
+    await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({ ...dialogForm_Data.value, ...extendData }))
+    handleDialogFormBtn_cancel()
+    queryApi()
+  }
+}
+const handleDialogFormBtn_cancel = (formRefKey?: string) => {
+  dialogVisible_addOrEdit.value = false
+  dialogVisible_audit.value = false
+}
 // #endregion
 
 // #region (dialog add/edit)
 const dialogVisible_addOrEdit = ref<boolean>(false)
 
-const dialogForm_Ref_addOrEdit= ref<FormInstance>()
-const dialogForm_Rules_addOrEdit = reactive({ 
-  'um_name':{required : true,message:'姓名不能为空',trigger:'submit'},
-  'um_avatar':{required : true,message:' 头像不能为空',trigger:'submit'},
-  'um_mobile':{required : true,message:'手机号码不能为空',trigger:'submit'},
-  'um_rank':{required : true,message:'职称不能为空',trigger:'submit'},
-  'um_subject':{required : true,message:'任教学科不能为空',trigger:'submit'},
-  'um_grade':{required : true,message:'任教年级不能为空',trigger:'submit'},
-  'um_school_name':{required : true,message:'学校名称不能为空',trigger:'submit'},
-  'um_zjer_account':{required : true,message:'之江汇账号不能为空',trigger:'submit'},
-  'um_status':{required : true,message:'审核状态不能为空',trigger:'submit'},
+const dialogForm_Ref_addOrEdit = ref<FormInstance>()
+const dialogForm_Rules_addOrEdit = reactive({
+  'um_name': { required: true, message: '姓名不能为空', trigger: 'submit' },
+  'um_avatar': { required: true, message: ' 头像不能为空', trigger: 'submit' },
+  'um_mobile': { required: true, message: '手机号码不能为空', trigger: 'submit' },
+  'um_rank': { required: true, message: '职称不能为空', trigger: 'submit' },
+  'um_subject': { required: true, message: '任教学科不能为空', trigger: 'submit' },
+  'um_grade': { required: true, message: '任教年级不能为空', trigger: 'submit' },
+  'um_school_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'um_zjer_account': { required: true, message: '之江汇账号不能为空', trigger: 'submit' },
+  'um_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
 })
 // #endregion
 
 // #region (dialog audit)
 const dialogVisible_audit = ref<boolean>(false)
 
-const dialogForm_Field_audit= reactive<{
-  FLAG:keyof TYPE_TABLE_FIELD,
-  REASON?:keyof TYPE_TABLE_FIELD
+const dialogForm_Field_audit = reactive<{
+  FLAG: keyof TYPE_TABLE_FIELD,
+  REASON?: keyof TYPE_TABLE_FIELD
 }>({
-  FLAG:'um_id',
+  FLAG: 'um_status',
   // REASON:'um_id'
 })
 
-const dialogForm_Ref_audit= ref<FormInstance>()
-const dialogForm_Rules_audit = reactive<FormRules>({ 
-  'um_name':{required : true ,message:'姓名不能为空',trigger:'submit'},
-  'um_avatar':{required : true ,message:' 头像不能为空',trigger:'submit'},
-  'um_mobile':{required : true ,message:'手机号码不能为空',trigger:'submit'},
-  'um_rank':{required : true ,message:'职称不能为空',trigger:'submit'},
-  'um_subject':{required : true ,message:'任教学科不能为空',trigger:'submit'},
-  'um_grade':{required : true ,message:'任教年级不能为空',trigger:'submit'},
-  'um_school_name':{required : true ,message:'学校名称不能为空',trigger:'submit'},
-  'um_zjer_account':{required : true ,message:'之江汇账号不能为空',trigger:'submit'},
-  'um_status':{required : true ,message:'审核状态不能为空',trigger:'submit'},
+const dialogForm_Ref_audit = ref<FormInstance>()
+const dialogForm_Rules_audit = reactive<FormRules>({
+  'um_name': { required: true, message: '姓名不能为空', trigger: 'submit' },
+  'um_avatar': { required: true, message: ' 头像不能为空', trigger: 'submit' },
+  'um_mobile': { required: true, message: '手机号码不能为空', trigger: 'submit' },
+  'um_rank': { required: true, message: '职称不能为空', trigger: 'submit' },
+  'um_subject': { required: true, message: '任教学科不能为空', trigger: 'submit' },
+  'um_grade': { required: true, message: '任教年级不能为空', trigger: 'submit' },
+  'um_school_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'um_zjer_account': { required: true, message: '之江汇账号不能为空', trigger: 'submit' },
+  'um_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
 })
 
 // #endregion
 
-// #region (request api): 
-function queryApi(){
+// #region (request api):
+function queryApi() {
   loading_table.value = true
   return request({
     url: URL_CUT + '/index',
     data: {
       ...queryForm_Data.value,
       limit: limit.value,
-      page: currentPage.value
+      page: currentPage.value,
+      um_status: 1
     }
-  }).then((response:{data:{total_rows:string,page_data:TYPE_TABLE_FIELD[]}}) => {
+  }).then((response: { data: { total_rows: string, page_data: TYPE_TABLE_FIELD[] } }) => {
     const { data } = response
     total.value = parseInt(data.total_rows)
     tableData.value = data.page_data
@@ -194,44 +195,44 @@ function queryApi(){
   })
 }
 
-function addApi(data:TYPE_TABLE_FIELD){
+function addApi(data: TYPE_TABLE_FIELD) {
   return request({
     url: URL_CUT + '/add',
     data: {
-      [URL_SUBMIT_KEY]:data,
+      [URL_SUBMIT_KEY]: data,
     }
   })
 }
 
-function editApi(data:Partial<TYPE_TABLE_FIELD>){
+function editApi(data: Partial<TYPE_TABLE_FIELD>) {
   return request({
     url: URL_CUT + '/edit',
     data: {
-      [TABLE_KEY]:data[TABLE_KEY],
-      [URL_SUBMIT_KEY]:pick(data,['um_name','um_avatar','um_mobile','um_rank','um_subject','um_grade','um_school_name','um_zjer_account','um_status',]),
+      [TABLE_KEY]: data[TABLE_KEY],
+      [URL_SUBMIT_KEY]: pick(data, ['um_name', 'um_avatar', 'um_mobile', 'um_rank', 'um_subject', 'um_grade', 'um_school_name', 'um_zjer_account', 'um_status',]),
     }
   })
 }
 
-function deleteApi(id:string|string[]){
+function deleteApi(id: string | string[]) {
   return request({
     url: URL_CUT + '/delete',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function detailApi(id:string){
+function detailApi(id: string) {
   return request({
     url: URL_CUT + '/detail',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function importApi(data:{file:File}){  
+function importApi(data: { file: File }) {
   return request({
     $type: 'import',
     url: URL_CUT + '/import',
@@ -239,23 +240,23 @@ function importApi(data:{file:File}){
   } as AxiosRequestConfig)
 }
 
-function exportApi(){
+function exportApi() {
   return download(URL_CUT + '/index', queryForm_Data.value)
 }
 
 const API_MAP = {
-  query:queryApi,
-  add:addApi,
-  edit:editApi,
-  delete:deleteApi,
-  detail:detailApi,
-  import:importApi,
-  export:exportApi,
+  query: queryApi,
+  add: addApi,
+  edit: editApi,
+  delete: deleteApi,
+  detail: detailApi,
+  import: importApi,
+  export: exportApi,
 }
 // #endregion
 
 // #region (page init)
-function init(){
+function init() {
   queryApi()
 }
 init()
@@ -267,15 +268,27 @@ init()
   <div class="card flex-grow flex flex-col">
     <el-form inline :model="queryForm_Data">
       <!-- <el-form-item label="关键字"><el-input v-model="queryForm_Data.keyword" ></el-input></el-form-item> -->
-      <el-form-item label="姓名"><el-input v-model="queryForm_Data.um_name" clearable /></el-form-item>
-      <el-form-item label=" 头像"><file-upload v-model:part="queryForm_Data.um_avatar" /></el-form-item>
-      <el-form-item label="手机号码"><el-input v-model="queryForm_Data.um_mobile" clearable /></el-form-item>
-      <el-form-item label="职称"><el-input v-model="queryForm_Data.um_rank" clearable /></el-form-item>
-      <el-form-item label="任教学科"><el-input v-model="queryForm_Data.um_subject" clearable /></el-form-item>
-      <el-form-item label="任教年级"><el-input v-model="queryForm_Data.um_grade" clearable /></el-form-item>
-      <el-form-item label="学校名称"><el-input v-model="queryForm_Data.um_school_name" clearable /></el-form-item>
-      <el-form-item label="之江汇账号"><el-input v-model="queryForm_Data.um_zjer_account" clearable /></el-form-item>
-      <el-form-item label="审核状态"><el-select v-model="queryForm_Data.um_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="审核通过" value="2" /></el-select></el-form-item>
+      <el-form-item label="姓名">
+        <el-input v-model="queryForm_Data.um_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="头像"><file-upload v-model:part="queryForm_Data.um_avatar" /></el-form-item> -->
+      <el-form-item label="手机号码">
+        <el-input v-model="queryForm_Data.um_mobile" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="职称"><el-input v-model="queryForm_Data.um_rank" clearable /></el-form-item> -->
+      <el-form-item label="任教学科">
+        <el-input v-model="queryForm_Data.um_subject" clearable />
+      </el-form-item>
+      <el-form-item label="任教年级">
+        <el-input v-model="queryForm_Data.um_grade" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称">
+        <el-input v-model="queryForm_Data.um_school_name" clearable />
+      </el-form-item>
+      <el-form-item label="之江汇账号">
+        <el-input v-model="queryForm_Data.um_zjer_account" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="审核状态"><el-select v-model="queryForm_Data.um_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="审核通过" value="2" /></el-select></el-form-item> -->
       <el-form-item>
         <el-button @click="handleQueryFormBtn_search" type="primary">搜索</el-button>
         <el-button @click="handleQueryFormBtn_clear" type="warning">清空</el-button>
@@ -283,10 +296,10 @@ init()
     </el-form>
     <div class="divider"></div>
     <div>
-        <import-button :url="URL_CUT_REF"></import-button>
-        <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
-        <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
-        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button>
+      <!-- <import-button :url="URL_CUT_REF"></import-button> -->
+      <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
+      <!-- <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button> -->
+      <!-- <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button> -->
     </div>
 
     <div class="divider"></div>
@@ -294,21 +307,22 @@ init()
       <el-table :data="tableData" @selection-change="handleSelectionChange" v-loading="loading_table"
         element-loading-background="#ffffff70">
         <el-table-column type="selection"></el-table-column>
+        <el-table-column prop="um_school_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_name" label="姓名" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="um_avatar" label=" 头像" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="um_avatar" label=" 头像" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="um_mobile" label="手机号码" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_rank" label="职称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_subject" label="任教学科" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_grade" label="任教年级" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="um_school_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_zjer_account" label="之江汇账号" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_status" label="审核状态" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column label="操作" fixed="right">
           <template #default="scope">
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary" >编辑</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary" >审核</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary" >详情</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary" >删除</el-button>
+            <!-- <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary" >编辑</el-button> -->
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary">审核
+            </el-button>
+            <!-- <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary" >详情</el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary" >删除</el-button> -->
           </template>
         </el-table-column>
       </el-table>
@@ -321,16 +335,38 @@ init()
   </div>
 
   <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit" label-width="120px">
-      <el-form-item label="姓名" prop="um_name"><el-input v-model="dialogForm_Data.um_name" clearable /></el-form-item>
-      <el-form-item label=" 头像" prop="um_avatar"><file-upload v-model:part="dialogForm_Data.um_avatar" /></el-form-item>
-      <el-form-item label="手机号码" prop="um_mobile"><el-input v-model="dialogForm_Data.um_mobile" clearable /></el-form-item>
-      <el-form-item label="职称" prop="um_rank"><el-input v-model="dialogForm_Data.um_rank" clearable /></el-form-item>
-      <el-form-item label="任教学科" prop="um_subject"><el-input v-model="dialogForm_Data.um_subject" clearable /></el-form-item>
-      <el-form-item label="任教年级" prop="um_grade"><el-input v-model="dialogForm_Data.um_grade" clearable /></el-form-item>
-      <el-form-item label="学校名称" prop="um_school_name"><el-input v-model="dialogForm_Data.um_school_name" clearable /></el-form-item>
-      <el-form-item label="之江汇账号" prop="um_zjer_account"><el-input v-model="dialogForm_Data.um_zjer_account" clearable /></el-form-item>
-      <el-form-item label="审核状态" prop="um_status"><el-radio-group v-model="dialogForm_Data.um_status"><el-radio label="1">待审核</el-radio><el-radio label="2">审核通过</el-radio></el-radio-group></el-form-item>
+    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit"
+      label-width="120px">
+      <el-form-item label="姓名" prop="um_name">
+        <el-input v-model="dialogForm_Data.um_name" clearable />
+      </el-form-item>
+      <el-form-item label=" 头像" prop="um_avatar">
+        <file-upload v-model:part="dialogForm_Data.um_avatar" />
+      </el-form-item>
+      <el-form-item label="手机号码" prop="um_mobile">
+        <el-input v-model="dialogForm_Data.um_mobile" clearable />
+      </el-form-item>
+      <el-form-item label="职称" prop="um_rank">
+        <el-input v-model="dialogForm_Data.um_rank" clearable />
+      </el-form-item>
+      <el-form-item label="任教学科" prop="um_subject">
+        <el-input v-model="dialogForm_Data.um_subject" clearable />
+      </el-form-item>
+      <el-form-item label="任教年级" prop="um_grade">
+        <el-input v-model="dialogForm_Data.um_grade" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称" prop="um_school_name">
+        <el-input v-model="dialogForm_Data.um_school_name" clearable />
+      </el-form-item>
+      <el-form-item label="之江汇账号" prop="um_zjer_account">
+        <el-input v-model="dialogForm_Data.um_zjer_account" clearable />
+      </el-form-item>
+      <el-form-item label="审核状态" prop="um_status">
+        <el-radio-group v-model="dialogForm_Data.um_status">
+          <el-radio label="1">待审核</el-radio>
+          <el-radio label="2">审核通过</el-radio>
+        </el-radio-group>
+      </el-form-item>
       <div class="flex justify-center">
         <el-button @click="handleDialogFormBtn_submit('dialogForm_Ref_addOrEdit')" type="primary">提交</el-button>
         <el-button @click="handleDialogFormBtn_cancel('dialogForm_Ref_addOrEdit')" type="default">取消</el-button>
@@ -342,8 +378,8 @@ init()
     <el-form :model="dialogForm_Data" ref="dialogForm_Ref_audit" :rules="dialogForm_Rules_audit" label-width="120px">
       <el-form-item label="状态">
         <el-radio-group v-model="dialogForm_Data[dialogForm_Field_audit.FLAG]">
-          <el-radio label="1">通过</el-radio>
-          <el-radio label="2">未通过</el-radio>
+          <el-radio label="2">通过</el-radio>
+          <el-radio label="3">未通过</el-radio>
         </el-radio-group>
       </el-form-item>
       <!-- <el-form-item label="原因" v-show="dialogForm_Data[dialogForm_Field_audit.FLAG] === '1'">

+ 167 - 131
src/pages/shgl/shgl/mssq/wtg.vue

@@ -18,7 +18,7 @@ const router = useRouter()
 
 // #region (variable)
 const loading_table = ref(true)
-let whichDialogSubmit:'add'|'edit'
+let whichDialogSubmit: 'add' | 'edit'
 // #endregion
 
 // #region (type)
@@ -43,73 +43,73 @@ type TYPE_TABLE_FIELD = {
 const queryForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
 const handleQueryFormBtn_search = () => {
-      queryApi()
-    }
+  queryApi()
+}
 const handleQueryFormBtn_clear = () => {
-      queryForm_Data.value = {}
-    }
+  queryForm_Data.value = {}
+}
 // #endregion
 
 // #region (table selection)
 const multipleSelection = ref<TYPE_TABLE_FIELD[]>([])
-const handleSelectionChange = (val:TYPE_TABLE_FIELD[]) => {
+const handleSelectionChange = (val: TYPE_TABLE_FIELD[]) => {
   multipleSelection.value = val
 }
 // #endregion
 
 // #region (table row)
 const handleTableRowBtn_import = async ({ file }: { file: File }) => {
-      const res = await API_MAP['import']({ file })
-      if(res.code === '1'){
-        queryApi()
-        ElMessage.success(res.msg)
-      }
-    }
+  const res = await API_MAP['import']({ file })
+  if (res.code === '1') {
+    queryApi()
+    ElMessage.success(res.msg)
+  }
+}
 const handleTableRowBtn_export = () => {
-      exportApi()
-    }
+  exportApi()
+}
 const handleTableRowBtn_add = () => {
-      whichDialogSubmit = 'add'
-      dialogForm_Data.value = {}
-      dialogVisible_addOrEdit.value = true
-    }
+  whichDialogSubmit = 'add'
+  dialogForm_Data.value = {}
+  dialogVisible_addOrEdit.value = true
+}
 const handleTableRowBtn_delete = async () => {
-      await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY]))
-      queryApi()
-    }
+  await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY]))
+  queryApi()
+}
 // #endregion
 
 // #region (table body)
 const tableData = ref<TYPE_TABLE_FIELD[]>([])
-const DetailName = '-SHGL-MSSQ-WTG'
+const DetailName = '-SHGL-MSSQ-DSH'
 const DetailParam = 'aid'
 
-const handleTableColBtn_edit = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      const res = await detailApi(scope.row[TABLE_KEY])
-      dialogForm_Data.value = (res.data.one_info)
-      dialogVisible_addOrEdit.value = true
-    }
-const handleTableColBtn_audit = (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
-      dialogVisible_audit.value = true
-    }
-const handleTableColBtn_detail = (scope:{row:TYPE_TABLE_FIELD}) => {
-      router.push({ name:DetailName, params:{ [DetailParam]:scope.row[TABLE_KEY]} })
-    }
-const handleTableColBtn_delete = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      await deleteApi(scope.row[TABLE_KEY])
-      queryApi()
-    }
+const handleTableColBtn_edit = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  const res = await detailApi(scope.row[TABLE_KEY])
+  dialogForm_Data.value = (res.data.one_info)
+  dialogVisible_addOrEdit.value = true
+}
+const handleTableColBtn_audit = (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
+  dialogVisible_audit.value = true
+}
+const handleTableColBtn_detail = (scope: { row: TYPE_TABLE_FIELD }) => {
+  router.push({ name: DetailName, params: { [DetailParam]: scope.row[TABLE_KEY] } })
+}
+const handleTableColBtn_delete = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  await deleteApi(scope.row[TABLE_KEY])
+  queryApi()
+}
 // #endregion
 
 // #region (pagination)
 const total = ref(0)
 const limit = ref(10)
 
-const currentPage=ref(1) 
-function handleCurrentChange(){
+const currentPage = ref(1)
+function handleCurrentChange() {
   queryApi()
 }
 // #endregion
@@ -117,74 +117,75 @@ function handleCurrentChange(){
 // #region (dialog base)
 const dialogForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
-const handleDialogFormBtn_submit = async (formRefKey:string,extendData?:Partial<TYPE_TABLE_FIELD>) => {
-      const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid:boolean) => valid)
-      if (isValid) {
-        await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({...dialogForm_Data.value,...extendData}))
-        handleDialogFormBtn_cancel()
-        queryApi()
-      }
-    }
-const handleDialogFormBtn_cancel = (formRefKey?:string) => {
-      dialogVisible_addOrEdit.value = false
-      dialogVisible_audit.value = false
-    }
+const handleDialogFormBtn_submit = async (formRefKey: string, extendData?: Partial<TYPE_TABLE_FIELD>) => {
+  const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid: boolean) => valid)
+  if (isValid) {
+    await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({ ...dialogForm_Data.value, ...extendData }))
+    handleDialogFormBtn_cancel()
+    queryApi()
+  }
+}
+const handleDialogFormBtn_cancel = (formRefKey?: string) => {
+  dialogVisible_addOrEdit.value = false
+  dialogVisible_audit.value = false
+}
 // #endregion
 
 // #region (dialog add/edit)
 const dialogVisible_addOrEdit = ref<boolean>(false)
 
-const dialogForm_Ref_addOrEdit= ref<FormInstance>()
-const dialogForm_Rules_addOrEdit = reactive({ 
-  'um_name':{required : true,message:'姓名不能为空',trigger:'submit'},
-  'um_avatar':{required : true,message:' 头像不能为空',trigger:'submit'},
-  'um_mobile':{required : true,message:'手机号码不能为空',trigger:'submit'},
-  'um_rank':{required : true,message:'职称不能为空',trigger:'submit'},
-  'um_subject':{required : true,message:'任教学科不能为空',trigger:'submit'},
-  'um_grade':{required : true,message:'任教年级不能为空',trigger:'submit'},
-  'um_school_name':{required : true,message:'学校名称不能为空',trigger:'submit'},
-  'um_zjer_account':{required : true,message:'之江汇账号不能为空',trigger:'submit'},
-  'um_status':{required : true,message:'审核状态不能为空',trigger:'submit'},
+const dialogForm_Ref_addOrEdit = ref<FormInstance>()
+const dialogForm_Rules_addOrEdit = reactive({
+  'um_name': { required: true, message: '姓名不能为空', trigger: 'submit' },
+  'um_avatar': { required: true, message: ' 头像不能为空', trigger: 'submit' },
+  'um_mobile': { required: true, message: '手机号码不能为空', trigger: 'submit' },
+  'um_rank': { required: true, message: '职称不能为空', trigger: 'submit' },
+  'um_subject': { required: true, message: '任教学科不能为空', trigger: 'submit' },
+  'um_grade': { required: true, message: '任教年级不能为空', trigger: 'submit' },
+  'um_school_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'um_zjer_account': { required: true, message: '之江汇账号不能为空', trigger: 'submit' },
+  'um_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
 })
 // #endregion
 
 // #region (dialog audit)
 const dialogVisible_audit = ref<boolean>(false)
 
-const dialogForm_Field_audit= reactive<{
-  FLAG:keyof TYPE_TABLE_FIELD,
-  REASON?:keyof TYPE_TABLE_FIELD
+const dialogForm_Field_audit = reactive<{
+  FLAG: keyof TYPE_TABLE_FIELD,
+  REASON?: keyof TYPE_TABLE_FIELD
 }>({
-  FLAG:'um_id',
+  FLAG: 'um_id',
   // REASON:'um_id'
 })
 
-const dialogForm_Ref_audit= ref<FormInstance>()
-const dialogForm_Rules_audit = reactive<FormRules>({ 
-  'um_name':{required : true ,message:'姓名不能为空',trigger:'submit'},
-  'um_avatar':{required : true ,message:' 头像不能为空',trigger:'submit'},
-  'um_mobile':{required : true ,message:'手机号码不能为空',trigger:'submit'},
-  'um_rank':{required : true ,message:'职称不能为空',trigger:'submit'},
-  'um_subject':{required : true ,message:'任教学科不能为空',trigger:'submit'},
-  'um_grade':{required : true ,message:'任教年级不能为空',trigger:'submit'},
-  'um_school_name':{required : true ,message:'学校名称不能为空',trigger:'submit'},
-  'um_zjer_account':{required : true ,message:'之江汇账号不能为空',trigger:'submit'},
-  'um_status':{required : true ,message:'审核状态不能为空',trigger:'submit'},
+const dialogForm_Ref_audit = ref<FormInstance>()
+const dialogForm_Rules_audit = reactive<FormRules>({
+  'um_name': { required: true, message: '姓名不能为空', trigger: 'submit' },
+  'um_avatar': { required: true, message: ' 头像不能为空', trigger: 'submit' },
+  'um_mobile': { required: true, message: '手机号码不能为空', trigger: 'submit' },
+  'um_rank': { required: true, message: '职称不能为空', trigger: 'submit' },
+  'um_subject': { required: true, message: '任教学科不能为空', trigger: 'submit' },
+  'um_grade': { required: true, message: '任教年级不能为空', trigger: 'submit' },
+  'um_school_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'um_zjer_account': { required: true, message: '之江汇账号不能为空', trigger: 'submit' },
+  'um_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
 })
 
 // #endregion
 
-// #region (request api): 
-function queryApi(){
+// #region (request api):
+function queryApi() {
   loading_table.value = true
   return request({
     url: URL_CUT + '/index',
     data: {
       ...queryForm_Data.value,
       limit: limit.value,
-      page: currentPage.value
+      page: currentPage.value,
+      um_status: 3
     }
-  }).then((response:{data:{total_rows:string,page_data:TYPE_TABLE_FIELD[]}}) => {
+  }).then((response: { data: { total_rows: string, page_data: TYPE_TABLE_FIELD[] } }) => {
     const { data } = response
     total.value = parseInt(data.total_rows)
     tableData.value = data.page_data
@@ -194,44 +195,44 @@ function queryApi(){
   })
 }
 
-function addApi(data:TYPE_TABLE_FIELD){
+function addApi(data: TYPE_TABLE_FIELD) {
   return request({
     url: URL_CUT + '/add',
     data: {
-      [URL_SUBMIT_KEY]:data,
+      [URL_SUBMIT_KEY]: data,
     }
   })
 }
 
-function editApi(data:Partial<TYPE_TABLE_FIELD>){
+function editApi(data: Partial<TYPE_TABLE_FIELD>) {
   return request({
     url: URL_CUT + '/edit',
     data: {
-      [TABLE_KEY]:data[TABLE_KEY],
-      [URL_SUBMIT_KEY]:pick(data,['um_name','um_avatar','um_mobile','um_rank','um_subject','um_grade','um_school_name','um_zjer_account','um_status',]),
+      [TABLE_KEY]: data[TABLE_KEY],
+      [URL_SUBMIT_KEY]: pick(data, ['um_name', 'um_avatar', 'um_mobile', 'um_rank', 'um_subject', 'um_grade', 'um_school_name', 'um_zjer_account', 'um_status',]),
     }
   })
 }
 
-function deleteApi(id:string|string[]){
+function deleteApi(id: string | string[]) {
   return request({
     url: URL_CUT + '/delete',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function detailApi(id:string){
+function detailApi(id: string) {
   return request({
     url: URL_CUT + '/detail',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function importApi(data:{file:File}){  
+function importApi(data: { file: File }) {
   return request({
     $type: 'import',
     url: URL_CUT + '/import',
@@ -239,23 +240,23 @@ function importApi(data:{file:File}){
   } as AxiosRequestConfig)
 }
 
-function exportApi(){
+function exportApi() {
   return download(URL_CUT + '/index', queryForm_Data.value)
 }
 
 const API_MAP = {
-  query:queryApi,
-  add:addApi,
-  edit:editApi,
-  delete:deleteApi,
-  detail:detailApi,
-  import:importApi,
-  export:exportApi,
+  query: queryApi,
+  add: addApi,
+  edit: editApi,
+  delete: deleteApi,
+  detail: detailApi,
+  import: importApi,
+  export: exportApi,
 }
 // #endregion
 
 // #region (page init)
-function init(){
+function init() {
   queryApi()
 }
 init()
@@ -267,15 +268,27 @@ init()
   <div class="card flex-grow flex flex-col">
     <el-form inline :model="queryForm_Data">
       <!-- <el-form-item label="关键字"><el-input v-model="queryForm_Data.keyword" ></el-input></el-form-item> -->
-      <el-form-item label="姓名"><el-input v-model="queryForm_Data.um_name" clearable /></el-form-item>
-      <el-form-item label=" 头像"><file-upload v-model:part="queryForm_Data.um_avatar" /></el-form-item>
-      <el-form-item label="手机号码"><el-input v-model="queryForm_Data.um_mobile" clearable /></el-form-item>
-      <el-form-item label="职称"><el-input v-model="queryForm_Data.um_rank" clearable /></el-form-item>
-      <el-form-item label="任教学科"><el-input v-model="queryForm_Data.um_subject" clearable /></el-form-item>
-      <el-form-item label="任教年级"><el-input v-model="queryForm_Data.um_grade" clearable /></el-form-item>
-      <el-form-item label="学校名称"><el-input v-model="queryForm_Data.um_school_name" clearable /></el-form-item>
-      <el-form-item label="之江汇账号"><el-input v-model="queryForm_Data.um_zjer_account" clearable /></el-form-item>
-      <el-form-item label="审核状态"><el-select v-model="queryForm_Data.um_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="审核通过" value="2" /></el-select></el-form-item>
+      <el-form-item label="姓名">
+        <el-input v-model="queryForm_Data.um_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="头像"><file-upload v-model:part="queryForm_Data.um_avatar" /></el-form-item> -->
+      <el-form-item label="手机号码">
+        <el-input v-model="queryForm_Data.um_mobile" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="职称"><el-input v-model="queryForm_Data.um_rank" clearable /></el-form-item> -->
+      <el-form-item label="任教学科">
+        <el-input v-model="queryForm_Data.um_subject" clearable />
+      </el-form-item>
+      <el-form-item label="任教年级">
+        <el-input v-model="queryForm_Data.um_grade" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称">
+        <el-input v-model="queryForm_Data.um_school_name" clearable />
+      </el-form-item>
+      <el-form-item label="之江汇账号">
+        <el-input v-model="queryForm_Data.um_zjer_account" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="审核状态"><el-select v-model="queryForm_Data.um_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="审核通过" value="2" /></el-select></el-form-item> -->
       <el-form-item>
         <el-button @click="handleQueryFormBtn_search" type="primary">搜索</el-button>
         <el-button @click="handleQueryFormBtn_clear" type="warning">清空</el-button>
@@ -283,10 +296,10 @@ init()
     </el-form>
     <div class="divider"></div>
     <div>
-        <import-button :url="URL_CUT_REF"></import-button>
-        <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
-        <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
-        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button>
+      <!-- <import-button :url="URL_CUT_REF"></import-button> -->
+      <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
+      <!-- <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button> -->
+      <!-- <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button> -->
     </div>
 
     <div class="divider"></div>
@@ -294,23 +307,24 @@ init()
       <el-table :data="tableData" @selection-change="handleSelectionChange" v-loading="loading_table"
         element-loading-background="#ffffff70">
         <el-table-column type="selection"></el-table-column>
+        <el-table-column prop="um_school_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_name" label="姓名" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="um_avatar" label=" 头像" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="um_avatar" label=" 头像" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="um_mobile" label="手机号码" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_rank" label="职称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_subject" label="任教学科" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_grade" label="任教年级" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="um_school_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_zjer_account" label="之江汇账号" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_status" label="审核状态" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column label="操作" fixed="right">
+        <!-- <el-table-column label="操作" fixed="right">
           <template #default="scope">
             <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary" >编辑</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary" >审核</el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary">审核
+            </el-button>
             <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary" >详情</el-button>
             <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary" >删除</el-button>
           </template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
     </div>
 
@@ -321,16 +335,38 @@ init()
   </div>
 
   <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit" label-width="120px">
-      <el-form-item label="姓名" prop="um_name"><el-input v-model="dialogForm_Data.um_name" clearable /></el-form-item>
-      <el-form-item label=" 头像" prop="um_avatar"><file-upload v-model:part="dialogForm_Data.um_avatar" /></el-form-item>
-      <el-form-item label="手机号码" prop="um_mobile"><el-input v-model="dialogForm_Data.um_mobile" clearable /></el-form-item>
-      <el-form-item label="职称" prop="um_rank"><el-input v-model="dialogForm_Data.um_rank" clearable /></el-form-item>
-      <el-form-item label="任教学科" prop="um_subject"><el-input v-model="dialogForm_Data.um_subject" clearable /></el-form-item>
-      <el-form-item label="任教年级" prop="um_grade"><el-input v-model="dialogForm_Data.um_grade" clearable /></el-form-item>
-      <el-form-item label="学校名称" prop="um_school_name"><el-input v-model="dialogForm_Data.um_school_name" clearable /></el-form-item>
-      <el-form-item label="之江汇账号" prop="um_zjer_account"><el-input v-model="dialogForm_Data.um_zjer_account" clearable /></el-form-item>
-      <el-form-item label="审核状态" prop="um_status"><el-radio-group v-model="dialogForm_Data.um_status"><el-radio label="1">待审核</el-radio><el-radio label="2">审核通过</el-radio></el-radio-group></el-form-item>
+    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit"
+      label-width="120px">
+      <el-form-item label="姓名" prop="um_name">
+        <el-input v-model="dialogForm_Data.um_name" clearable />
+      </el-form-item>
+      <el-form-item label=" 头像" prop="um_avatar">
+        <file-upload v-model:part="dialogForm_Data.um_avatar" />
+      </el-form-item>
+      <el-form-item label="手机号码" prop="um_mobile">
+        <el-input v-model="dialogForm_Data.um_mobile" clearable />
+      </el-form-item>
+      <el-form-item label="职称" prop="um_rank">
+        <el-input v-model="dialogForm_Data.um_rank" clearable />
+      </el-form-item>
+      <el-form-item label="任教学科" prop="um_subject">
+        <el-input v-model="dialogForm_Data.um_subject" clearable />
+      </el-form-item>
+      <el-form-item label="任教年级" prop="um_grade">
+        <el-input v-model="dialogForm_Data.um_grade" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称" prop="um_school_name">
+        <el-input v-model="dialogForm_Data.um_school_name" clearable />
+      </el-form-item>
+      <el-form-item label="之江汇账号" prop="um_zjer_account">
+        <el-input v-model="dialogForm_Data.um_zjer_account" clearable />
+      </el-form-item>
+      <el-form-item label="审核状态" prop="um_status">
+        <el-radio-group v-model="dialogForm_Data.um_status">
+          <el-radio label="1">待审核</el-radio>
+          <el-radio label="2">审核通过</el-radio>
+        </el-radio-group>
+      </el-form-item>
       <div class="flex justify-center">
         <el-button @click="handleDialogFormBtn_submit('dialogForm_Ref_addOrEdit')" type="primary">提交</el-button>
         <el-button @click="handleDialogFormBtn_cancel('dialogForm_Ref_addOrEdit')" type="default">取消</el-button>

+ 167 - 131
src/pages/shgl/shgl/mssq/ytg.vue

@@ -18,7 +18,7 @@ const router = useRouter()
 
 // #region (variable)
 const loading_table = ref(true)
-let whichDialogSubmit:'add'|'edit'
+let whichDialogSubmit: 'add' | 'edit'
 // #endregion
 
 // #region (type)
@@ -43,73 +43,73 @@ type TYPE_TABLE_FIELD = {
 const queryForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
 const handleQueryFormBtn_search = () => {
-      queryApi()
-    }
+  queryApi()
+}
 const handleQueryFormBtn_clear = () => {
-      queryForm_Data.value = {}
-    }
+  queryForm_Data.value = {}
+}
 // #endregion
 
 // #region (table selection)
 const multipleSelection = ref<TYPE_TABLE_FIELD[]>([])
-const handleSelectionChange = (val:TYPE_TABLE_FIELD[]) => {
+const handleSelectionChange = (val: TYPE_TABLE_FIELD[]) => {
   multipleSelection.value = val
 }
 // #endregion
 
 // #region (table row)
 const handleTableRowBtn_import = async ({ file }: { file: File }) => {
-      const res = await API_MAP['import']({ file })
-      if(res.code === '1'){
-        queryApi()
-        ElMessage.success(res.msg)
-      }
-    }
+  const res = await API_MAP['import']({ file })
+  if (res.code === '1') {
+    queryApi()
+    ElMessage.success(res.msg)
+  }
+}
 const handleTableRowBtn_export = () => {
-      exportApi()
-    }
+  exportApi()
+}
 const handleTableRowBtn_add = () => {
-      whichDialogSubmit = 'add'
-      dialogForm_Data.value = {}
-      dialogVisible_addOrEdit.value = true
-    }
+  whichDialogSubmit = 'add'
+  dialogForm_Data.value = {}
+  dialogVisible_addOrEdit.value = true
+}
 const handleTableRowBtn_delete = async () => {
-      await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY]))
-      queryApi()
-    }
+  await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY]))
+  queryApi()
+}
 // #endregion
 
 // #region (table body)
 const tableData = ref<TYPE_TABLE_FIELD[]>([])
-const DetailName = '-SHGL-MSSQ-YTG'
+const DetailName = '-SHGL-MSSQ-DSH'
 const DetailParam = 'aid'
 
-const handleTableColBtn_edit = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      const res = await detailApi(scope.row[TABLE_KEY])
-      dialogForm_Data.value = (res.data.one_info)
-      dialogVisible_addOrEdit.value = true
-    }
-const handleTableColBtn_audit = (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
-      dialogVisible_audit.value = true
-    }
-const handleTableColBtn_detail = (scope:{row:TYPE_TABLE_FIELD}) => {
-      router.push({ name:DetailName, params:{ [DetailParam]:scope.row[TABLE_KEY]} })
-    }
-const handleTableColBtn_delete = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      await deleteApi(scope.row[TABLE_KEY])
-      queryApi()
-    }
+const handleTableColBtn_edit = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  const res = await detailApi(scope.row[TABLE_KEY])
+  dialogForm_Data.value = (res.data.one_info)
+  dialogVisible_addOrEdit.value = true
+}
+const handleTableColBtn_audit = (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
+  dialogVisible_audit.value = true
+}
+const handleTableColBtn_detail = (scope: { row: TYPE_TABLE_FIELD }) => {
+  router.push({ name: DetailName, params: { [DetailParam]: scope.row[TABLE_KEY] } })
+}
+const handleTableColBtn_delete = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  await deleteApi(scope.row[TABLE_KEY])
+  queryApi()
+}
 // #endregion
 
 // #region (pagination)
 const total = ref(0)
 const limit = ref(10)
 
-const currentPage=ref(1) 
-function handleCurrentChange(){
+const currentPage = ref(1)
+function handleCurrentChange() {
   queryApi()
 }
 // #endregion
@@ -117,74 +117,75 @@ function handleCurrentChange(){
 // #region (dialog base)
 const dialogForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
-const handleDialogFormBtn_submit = async (formRefKey:string,extendData?:Partial<TYPE_TABLE_FIELD>) => {
-      const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid:boolean) => valid)
-      if (isValid) {
-        await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({...dialogForm_Data.value,...extendData}))
-        handleDialogFormBtn_cancel()
-        queryApi()
-      }
-    }
-const handleDialogFormBtn_cancel = (formRefKey?:string) => {
-      dialogVisible_addOrEdit.value = false
-      dialogVisible_audit.value = false
-    }
+const handleDialogFormBtn_submit = async (formRefKey: string, extendData?: Partial<TYPE_TABLE_FIELD>) => {
+  const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid: boolean) => valid)
+  if (isValid) {
+    await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({ ...dialogForm_Data.value, ...extendData }))
+    handleDialogFormBtn_cancel()
+    queryApi()
+  }
+}
+const handleDialogFormBtn_cancel = (formRefKey?: string) => {
+  dialogVisible_addOrEdit.value = false
+  dialogVisible_audit.value = false
+}
 // #endregion
 
 // #region (dialog add/edit)
 const dialogVisible_addOrEdit = ref<boolean>(false)
 
-const dialogForm_Ref_addOrEdit= ref<FormInstance>()
-const dialogForm_Rules_addOrEdit = reactive({ 
-  'um_name':{required : true,message:'姓名不能为空',trigger:'submit'},
-  'um_avatar':{required : true,message:' 头像不能为空',trigger:'submit'},
-  'um_mobile':{required : true,message:'手机号码不能为空',trigger:'submit'},
-  'um_rank':{required : true,message:'职称不能为空',trigger:'submit'},
-  'um_subject':{required : true,message:'任教学科不能为空',trigger:'submit'},
-  'um_grade':{required : true,message:'任教年级不能为空',trigger:'submit'},
-  'um_school_name':{required : true,message:'学校名称不能为空',trigger:'submit'},
-  'um_zjer_account':{required : true,message:'之江汇账号不能为空',trigger:'submit'},
-  'um_status':{required : true,message:'审核状态不能为空',trigger:'submit'},
+const dialogForm_Ref_addOrEdit = ref<FormInstance>()
+const dialogForm_Rules_addOrEdit = reactive({
+  'um_name': { required: true, message: '姓名不能为空', trigger: 'submit' },
+  'um_avatar': { required: true, message: ' 头像不能为空', trigger: 'submit' },
+  'um_mobile': { required: true, message: '手机号码不能为空', trigger: 'submit' },
+  'um_rank': { required: true, message: '职称不能为空', trigger: 'submit' },
+  'um_subject': { required: true, message: '任教学科不能为空', trigger: 'submit' },
+  'um_grade': { required: true, message: '任教年级不能为空', trigger: 'submit' },
+  'um_school_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'um_zjer_account': { required: true, message: '之江汇账号不能为空', trigger: 'submit' },
+  'um_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
 })
 // #endregion
 
 // #region (dialog audit)
 const dialogVisible_audit = ref<boolean>(false)
 
-const dialogForm_Field_audit= reactive<{
-  FLAG:keyof TYPE_TABLE_FIELD,
-  REASON?:keyof TYPE_TABLE_FIELD
+const dialogForm_Field_audit = reactive<{
+  FLAG: keyof TYPE_TABLE_FIELD,
+  REASON?: keyof TYPE_TABLE_FIELD
 }>({
-  FLAG:'um_id',
+  FLAG: 'um_id',
   // REASON:'um_id'
 })
 
-const dialogForm_Ref_audit= ref<FormInstance>()
-const dialogForm_Rules_audit = reactive<FormRules>({ 
-  'um_name':{required : true ,message:'姓名不能为空',trigger:'submit'},
-  'um_avatar':{required : true ,message:' 头像不能为空',trigger:'submit'},
-  'um_mobile':{required : true ,message:'手机号码不能为空',trigger:'submit'},
-  'um_rank':{required : true ,message:'职称不能为空',trigger:'submit'},
-  'um_subject':{required : true ,message:'任教学科不能为空',trigger:'submit'},
-  'um_grade':{required : true ,message:'任教年级不能为空',trigger:'submit'},
-  'um_school_name':{required : true ,message:'学校名称不能为空',trigger:'submit'},
-  'um_zjer_account':{required : true ,message:'之江汇账号不能为空',trigger:'submit'},
-  'um_status':{required : true ,message:'审核状态不能为空',trigger:'submit'},
+const dialogForm_Ref_audit = ref<FormInstance>()
+const dialogForm_Rules_audit = reactive<FormRules>({
+  'um_name': { required: true, message: '姓名不能为空', trigger: 'submit' },
+  'um_avatar': { required: true, message: ' 头像不能为空', trigger: 'submit' },
+  'um_mobile': { required: true, message: '手机号码不能为空', trigger: 'submit' },
+  'um_rank': { required: true, message: '职称不能为空', trigger: 'submit' },
+  'um_subject': { required: true, message: '任教学科不能为空', trigger: 'submit' },
+  'um_grade': { required: true, message: '任教年级不能为空', trigger: 'submit' },
+  'um_school_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'um_zjer_account': { required: true, message: '之江汇账号不能为空', trigger: 'submit' },
+  'um_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
 })
 
 // #endregion
 
-// #region (request api): 
-function queryApi(){
+// #region (request api):
+function queryApi() {
   loading_table.value = true
   return request({
     url: URL_CUT + '/index',
     data: {
       ...queryForm_Data.value,
       limit: limit.value,
-      page: currentPage.value
+      page: currentPage.value,
+      um_status: 2
     }
-  }).then((response:{data:{total_rows:string,page_data:TYPE_TABLE_FIELD[]}}) => {
+  }).then((response: { data: { total_rows: string, page_data: TYPE_TABLE_FIELD[] } }) => {
     const { data } = response
     total.value = parseInt(data.total_rows)
     tableData.value = data.page_data
@@ -194,44 +195,44 @@ function queryApi(){
   })
 }
 
-function addApi(data:TYPE_TABLE_FIELD){
+function addApi(data: TYPE_TABLE_FIELD) {
   return request({
     url: URL_CUT + '/add',
     data: {
-      [URL_SUBMIT_KEY]:data,
+      [URL_SUBMIT_KEY]: data,
     }
   })
 }
 
-function editApi(data:Partial<TYPE_TABLE_FIELD>){
+function editApi(data: Partial<TYPE_TABLE_FIELD>) {
   return request({
     url: URL_CUT + '/edit',
     data: {
-      [TABLE_KEY]:data[TABLE_KEY],
-      [URL_SUBMIT_KEY]:pick(data,['um_name','um_avatar','um_mobile','um_rank','um_subject','um_grade','um_school_name','um_zjer_account','um_status',]),
+      [TABLE_KEY]: data[TABLE_KEY],
+      [URL_SUBMIT_KEY]: pick(data, ['um_name', 'um_avatar', 'um_mobile', 'um_rank', 'um_subject', 'um_grade', 'um_school_name', 'um_zjer_account', 'um_status',]),
     }
   })
 }
 
-function deleteApi(id:string|string[]){
+function deleteApi(id: string | string[]) {
   return request({
     url: URL_CUT + '/delete',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function detailApi(id:string){
+function detailApi(id: string) {
   return request({
     url: URL_CUT + '/detail',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function importApi(data:{file:File}){  
+function importApi(data: { file: File }) {
   return request({
     $type: 'import',
     url: URL_CUT + '/import',
@@ -239,23 +240,23 @@ function importApi(data:{file:File}){
   } as AxiosRequestConfig)
 }
 
-function exportApi(){
+function exportApi() {
   return download(URL_CUT + '/index', queryForm_Data.value)
 }
 
 const API_MAP = {
-  query:queryApi,
-  add:addApi,
-  edit:editApi,
-  delete:deleteApi,
-  detail:detailApi,
-  import:importApi,
-  export:exportApi,
+  query: queryApi,
+  add: addApi,
+  edit: editApi,
+  delete: deleteApi,
+  detail: detailApi,
+  import: importApi,
+  export: exportApi,
 }
 // #endregion
 
 // #region (page init)
-function init(){
+function init() {
   queryApi()
 }
 init()
@@ -267,15 +268,27 @@ init()
   <div class="card flex-grow flex flex-col">
     <el-form inline :model="queryForm_Data">
       <!-- <el-form-item label="关键字"><el-input v-model="queryForm_Data.keyword" ></el-input></el-form-item> -->
-      <el-form-item label="姓名"><el-input v-model="queryForm_Data.um_name" clearable /></el-form-item>
-      <el-form-item label=" 头像"><file-upload v-model:part="queryForm_Data.um_avatar" /></el-form-item>
-      <el-form-item label="手机号码"><el-input v-model="queryForm_Data.um_mobile" clearable /></el-form-item>
-      <el-form-item label="职称"><el-input v-model="queryForm_Data.um_rank" clearable /></el-form-item>
-      <el-form-item label="任教学科"><el-input v-model="queryForm_Data.um_subject" clearable /></el-form-item>
-      <el-form-item label="任教年级"><el-input v-model="queryForm_Data.um_grade" clearable /></el-form-item>
-      <el-form-item label="学校名称"><el-input v-model="queryForm_Data.um_school_name" clearable /></el-form-item>
-      <el-form-item label="之江汇账号"><el-input v-model="queryForm_Data.um_zjer_account" clearable /></el-form-item>
-      <el-form-item label="审核状态"><el-select v-model="queryForm_Data.um_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="审核通过" value="2" /></el-select></el-form-item>
+      <el-form-item label="姓名">
+        <el-input v-model="queryForm_Data.um_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="头像"><file-upload v-model:part="queryForm_Data.um_avatar" /></el-form-item> -->
+      <el-form-item label="手机号码">
+        <el-input v-model="queryForm_Data.um_mobile" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="职称"><el-input v-model="queryForm_Data.um_rank" clearable /></el-form-item> -->
+      <el-form-item label="任教学科">
+        <el-input v-model="queryForm_Data.um_subject" clearable />
+      </el-form-item>
+      <el-form-item label="任教年级">
+        <el-input v-model="queryForm_Data.um_grade" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称">
+        <el-input v-model="queryForm_Data.um_school_name" clearable />
+      </el-form-item>
+      <el-form-item label="之江汇账号">
+        <el-input v-model="queryForm_Data.um_zjer_account" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="审核状态"><el-select v-model="queryForm_Data.um_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="审核通过" value="2" /></el-select></el-form-item> -->
       <el-form-item>
         <el-button @click="handleQueryFormBtn_search" type="primary">搜索</el-button>
         <el-button @click="handleQueryFormBtn_clear" type="warning">清空</el-button>
@@ -283,10 +296,10 @@ init()
     </el-form>
     <div class="divider"></div>
     <div>
-        <import-button :url="URL_CUT_REF"></import-button>
-        <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
-        <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
-        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button>
+      <!-- <import-button :url="URL_CUT_REF"></import-button> -->
+      <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
+      <!-- <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button> -->
+      <!-- <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button> -->
     </div>
 
     <div class="divider"></div>
@@ -294,23 +307,24 @@ init()
       <el-table :data="tableData" @selection-change="handleSelectionChange" v-loading="loading_table"
         element-loading-background="#ffffff70">
         <el-table-column type="selection"></el-table-column>
+        <el-table-column prop="um_school_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_name" label="姓名" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="um_avatar" label=" 头像" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="um_avatar" label=" 头像" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="um_mobile" label="手机号码" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_rank" label="职称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_subject" label="任教学科" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_grade" label="任教年级" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="um_school_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_zjer_account" label="之江汇账号" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="um_status" label="审核状态" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column label="操作" fixed="right">
+        <!-- <el-table-column label="操作" fixed="right">
           <template #default="scope">
             <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary" >编辑</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary" >审核</el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary">审核
+            </el-button>
             <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary" >详情</el-button>
             <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary" >删除</el-button>
           </template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
     </div>
 
@@ -321,16 +335,38 @@ init()
   </div>
 
   <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit" label-width="120px">
-      <el-form-item label="姓名" prop="um_name"><el-input v-model="dialogForm_Data.um_name" clearable /></el-form-item>
-      <el-form-item label=" 头像" prop="um_avatar"><file-upload v-model:part="dialogForm_Data.um_avatar" /></el-form-item>
-      <el-form-item label="手机号码" prop="um_mobile"><el-input v-model="dialogForm_Data.um_mobile" clearable /></el-form-item>
-      <el-form-item label="职称" prop="um_rank"><el-input v-model="dialogForm_Data.um_rank" clearable /></el-form-item>
-      <el-form-item label="任教学科" prop="um_subject"><el-input v-model="dialogForm_Data.um_subject" clearable /></el-form-item>
-      <el-form-item label="任教年级" prop="um_grade"><el-input v-model="dialogForm_Data.um_grade" clearable /></el-form-item>
-      <el-form-item label="学校名称" prop="um_school_name"><el-input v-model="dialogForm_Data.um_school_name" clearable /></el-form-item>
-      <el-form-item label="之江汇账号" prop="um_zjer_account"><el-input v-model="dialogForm_Data.um_zjer_account" clearable /></el-form-item>
-      <el-form-item label="审核状态" prop="um_status"><el-radio-group v-model="dialogForm_Data.um_status"><el-radio label="1">待审核</el-radio><el-radio label="2">审核通过</el-radio></el-radio-group></el-form-item>
+    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit"
+      label-width="120px">
+      <el-form-item label="姓名" prop="um_name">
+        <el-input v-model="dialogForm_Data.um_name" clearable />
+      </el-form-item>
+      <el-form-item label=" 头像" prop="um_avatar">
+        <file-upload v-model:part="dialogForm_Data.um_avatar" />
+      </el-form-item>
+      <el-form-item label="手机号码" prop="um_mobile">
+        <el-input v-model="dialogForm_Data.um_mobile" clearable />
+      </el-form-item>
+      <el-form-item label="职称" prop="um_rank">
+        <el-input v-model="dialogForm_Data.um_rank" clearable />
+      </el-form-item>
+      <el-form-item label="任教学科" prop="um_subject">
+        <el-input v-model="dialogForm_Data.um_subject" clearable />
+      </el-form-item>
+      <el-form-item label="任教年级" prop="um_grade">
+        <el-input v-model="dialogForm_Data.um_grade" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称" prop="um_school_name">
+        <el-input v-model="dialogForm_Data.um_school_name" clearable />
+      </el-form-item>
+      <el-form-item label="之江汇账号" prop="um_zjer_account">
+        <el-input v-model="dialogForm_Data.um_zjer_account" clearable />
+      </el-form-item>
+      <el-form-item label="审核状态" prop="um_status">
+        <el-radio-group v-model="dialogForm_Data.um_status">
+          <el-radio label="1">待审核</el-radio>
+          <el-radio label="2">审核通过</el-radio>
+        </el-radio-group>
+      </el-form-item>
       <div class="flex justify-center">
         <el-button @click="handleDialogFormBtn_submit('dialogForm_Ref_addOrEdit')" type="primary">提交</el-button>
         <el-button @click="handleDialogFormBtn_cancel('dialogForm_Ref_addOrEdit')" type="default">取消</el-button>

+ 257 - 181
src/pages/shgl/shgl/yksq/dsh.vue

@@ -18,7 +18,7 @@ const router = useRouter()
 
 // #region (variable)
 const loading_table = ref(true)
-let whichDialogSubmit:'add'|'edit'
+let whichDialogSubmit: 'add' | 'edit'
 // #endregion
 
 // #region (type)
@@ -53,40 +53,40 @@ type TYPE_TABLE_FIELD = {
 const queryForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
 const handleQueryFormBtn_search = () => {
-      queryApi()
-    }
+  queryApi()
+}
 const handleQueryFormBtn_clear = () => {
-      queryForm_Data.value = {}
-    }
+  queryForm_Data.value = {}
+}
 // #endregion
 
 // #region (table selection)
 const multipleSelection = ref<TYPE_TABLE_FIELD[]>([])
-const handleSelectionChange = (val:TYPE_TABLE_FIELD[]) => {
+const handleSelectionChange = (val: TYPE_TABLE_FIELD[]) => {
   multipleSelection.value = val
 }
 // #endregion
 
 // #region (table row)
 const handleTableRowBtn_import = async ({ file }: { file: File }) => {
-      const res = await API_MAP['import']({ file })
-      if(res.code === '1'){
-        queryApi()
-        ElMessage.success(res.msg)
-      }
-    }
+  const res = await API_MAP['import']({ file })
+  if (res.code === '1') {
+    queryApi()
+    ElMessage.success(res.msg)
+  }
+}
 const handleTableRowBtn_export = () => {
-      exportApi()
-    }
+  exportApi()
+}
 const handleTableRowBtn_add = () => {
-      whichDialogSubmit = 'add'
-      dialogForm_Data.value = {}
-      dialogVisible_addOrEdit.value = true
-    }
+  whichDialogSubmit = 'add'
+  dialogForm_Data.value = {}
+  dialogVisible_addOrEdit.value = true
+}
 const handleTableRowBtn_delete = async () => {
-      await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY]))
-      queryApi()
-    }
+  await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY]))
+  queryApi()
+}
 // #endregion
 
 // #region (table body)
@@ -94,32 +94,32 @@ const tableData = ref<TYPE_TABLE_FIELD[]>([])
 const DetailName = '-SHGL-YKSQ-DSH'
 const DetailParam = 'aid'
 
-const handleTableColBtn_edit = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      const res = await detailApi(scope.row[TABLE_KEY])
-      dialogForm_Data.value = (res.data.one_info)
-      dialogVisible_addOrEdit.value = true
-    }
-const handleTableColBtn_audit = (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
-      dialogVisible_audit.value = true
-    }
-const handleTableColBtn_detail = (scope:{row:TYPE_TABLE_FIELD}) => {
-      router.push({ name:DetailName, params:{ [DetailParam]:scope.row[TABLE_KEY]} })
-    }
-const handleTableColBtn_delete = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      await deleteApi(scope.row[TABLE_KEY])
-      queryApi()
-    }
+const handleTableColBtn_edit = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  const res = await detailApi(scope.row[TABLE_KEY])
+  dialogForm_Data.value = (res.data.one_info)
+  dialogVisible_addOrEdit.value = true
+}
+const handleTableColBtn_audit = (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
+  dialogVisible_audit.value = true
+}
+const handleTableColBtn_detail = (scope: { row: TYPE_TABLE_FIELD }) => {
+  router.push({ name: DetailName, params: { [DetailParam]: scope.row[TABLE_KEY] } })
+}
+const handleTableColBtn_delete = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  await deleteApi(scope.row[TABLE_KEY])
+  queryApi()
+}
 // #endregion
 
 // #region (pagination)
 const total = ref(0)
 const limit = ref(10)
 
-const currentPage=ref(1) 
-function handleCurrentChange(){
+const currentPage = ref(1)
+function handleCurrentChange() {
   queryApi()
 }
 // #endregion
@@ -127,94 +127,95 @@ function handleCurrentChange(){
 // #region (dialog base)
 const dialogForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
-const handleDialogFormBtn_submit = async (formRefKey:string,extendData?:Partial<TYPE_TABLE_FIELD>) => {
-      const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid:boolean) => valid)
-      if (isValid) {
-        await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({...dialogForm_Data.value,...extendData}))
-        handleDialogFormBtn_cancel()
-        queryApi()
-      }
-    }
-const handleDialogFormBtn_cancel = (formRefKey?:string) => {
-      dialogVisible_addOrEdit.value = false
-      dialogVisible_audit.value = false
-    }
+const handleDialogFormBtn_submit = async (formRefKey: string, extendData?: Partial<TYPE_TABLE_FIELD>) => {
+  const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid: boolean) => valid)
+  if (isValid) {
+    await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({ ...dialogForm_Data.value, ...extendData }))
+    handleDialogFormBtn_cancel()
+    queryApi()
+  }
+}
+const handleDialogFormBtn_cancel = (formRefKey?: string) => {
+  dialogVisible_addOrEdit.value = false
+  dialogVisible_audit.value = false
+}
 // #endregion
 
 // #region (dialog add/edit)
 const dialogVisible_addOrEdit = ref<boolean>(false)
 
-const dialogForm_Ref_addOrEdit= ref<FormInstance>()
-const dialogForm_Rules_addOrEdit = reactive({ 
-  'ym_name':{required : true,message:'名称不能为空',trigger:'submit'},
-  'ym_img':{required : true,message:'封面不能为空',trigger:'submit'},
-  'ym_brief':{required : true,message:'简介不能为空',trigger:'submit'},
-  'ym_sm_id':{required : true,message:'学校编号不能为空',trigger:'submit'},
-  'ym_sm_name':{required : true,message:'学校名称不能为空',trigger:'submit'},
-  'grade_id':{required : true,message:'年级编号不能为空',trigger:'submit'},
-  'subject_id':{required : true,message:'学科编号不能为空',trigger:'submit'},
-  'grade_name':{required : true,message:'年级名称不能为空',trigger:'submit'},
-  'subject_name':{required : true,message:'学科名称不能为空',trigger:'submit'},
-  'ym_cm_id':{required : true,message:'班级编号不能为空',trigger:'submit'},
-  'ym_cm_name':{required : true,message:'班级名称不能为空',trigger:'submit'},
-  'ym_student_num':{required : true,message:'学生数不能为空',trigger:'submit'},
-  'ym_timetable_json':{required : true,message:'课表JSON不能为空',trigger:'submit'},
-  'ym_part_teacher':{required : true,message:'兼职教师不能为空',trigger:'submit'},
-  'ym_date':{required : true,message:'约课日期不能为空',trigger:'submit'},
-  'ym_weekday':{required : true,message:'周天不能为空',trigger:'submit'},
-  'ym_lesson_no':{required : true,message:'课节次不能为空',trigger:'submit'},
-  'ym_status':{required : true,message:'审核状态不能为空',trigger:'submit'},
-  'team_id':{required : true,message:'分册不能为空',trigger:'submit'},
+const dialogForm_Ref_addOrEdit = ref<FormInstance>()
+const dialogForm_Rules_addOrEdit = reactive({
+  'ym_name': { required: true, message: '名称不能为空', trigger: 'submit' },
+  'ym_img': { required: true, message: '封面不能为空', trigger: 'submit' },
+  'ym_brief': { required: true, message: '简介不能为空', trigger: 'submit' },
+  'ym_sm_id': { required: true, message: '学校编号不能为空', trigger: 'submit' },
+  'ym_sm_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'grade_id': { required: true, message: '年级编号不能为空', trigger: 'submit' },
+  'subject_id': { required: true, message: '学科编号不能为空', trigger: 'submit' },
+  'grade_name': { required: true, message: '年级名称不能为空', trigger: 'submit' },
+  'subject_name': { required: true, message: '学科名称不能为空', trigger: 'submit' },
+  'ym_cm_id': { required: true, message: '班级编号不能为空', trigger: 'submit' },
+  'ym_cm_name': { required: true, message: '班级名称不能为空', trigger: 'submit' },
+  'ym_student_num': { required: true, message: '学生数不能为空', trigger: 'submit' },
+  'ym_timetable_json': { required: true, message: '课表JSON不能为空', trigger: 'submit' },
+  'ym_part_teacher': { required: true, message: '兼职教师不能为空', trigger: 'submit' },
+  'ym_date': { required: true, message: '约课日期不能为空', trigger: 'submit' },
+  'ym_weekday': { required: true, message: '周天不能为空', trigger: 'submit' },
+  'ym_lesson_no': { required: true, message: '课节次不能为空', trigger: 'submit' },
+  'ym_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
+  'team_id': { required: true, message: '分册不能为空', trigger: 'submit' },
 })
 // #endregion
 
 // #region (dialog audit)
 const dialogVisible_audit = ref<boolean>(false)
 
-const dialogForm_Field_audit= reactive<{
-  FLAG:keyof TYPE_TABLE_FIELD,
-  REASON?:keyof TYPE_TABLE_FIELD
+const dialogForm_Field_audit = reactive<{
+  FLAG: keyof TYPE_TABLE_FIELD,
+  REASON?: keyof TYPE_TABLE_FIELD
 }>({
-  FLAG:'ym_id',
+  FLAG: 'ym_status',
   // REASON:'ym_id'
 })
 
-const dialogForm_Ref_audit= ref<FormInstance>()
-const dialogForm_Rules_audit = reactive<FormRules>({ 
-  'ym_name':{required : true ,message:'名称不能为空',trigger:'submit'},
-  'ym_img':{required : true ,message:'封面不能为空',trigger:'submit'},
-  'ym_brief':{required : true ,message:'简介不能为空',trigger:'submit'},
-  'ym_sm_id':{required : true ,message:'学校编号不能为空',trigger:'submit'},
-  'ym_sm_name':{required : true ,message:'学校名称不能为空',trigger:'submit'},
-  'grade_id':{required : true ,message:'年级编号不能为空',trigger:'submit'},
-  'subject_id':{required : true ,message:'学科编号不能为空',trigger:'submit'},
-  'grade_name':{required : true ,message:'年级名称不能为空',trigger:'submit'},
-  'subject_name':{required : true ,message:'学科名称不能为空',trigger:'submit'},
-  'ym_cm_id':{required : true ,message:'班级编号不能为空',trigger:'submit'},
-  'ym_cm_name':{required : true ,message:'班级名称不能为空',trigger:'submit'},
-  'ym_student_num':{required : true ,message:'学生数不能为空',trigger:'submit'},
-  'ym_timetable_json':{required : true ,message:'课表JSON不能为空',trigger:'submit'},
-  'ym_part_teacher':{required : true ,message:'兼职教师不能为空',trigger:'submit'},
-  'ym_date':{required : true ,message:'约课日期不能为空',trigger:'submit'},
-  'ym_weekday':{required : true ,message:'周天不能为空',trigger:'submit'},
-  'ym_lesson_no':{required : true ,message:'课节次不能为空',trigger:'submit'},
-  'ym_status':{required : true ,message:'审核状态不能为空',trigger:'submit'},
-  'team_id':{required : true ,message:'分册不能为空',trigger:'submit'},
+const dialogForm_Ref_audit = ref<FormInstance>()
+const dialogForm_Rules_audit = reactive<FormRules>({
+  'ym_name': { required: true, message: '名称不能为空', trigger: 'submit' },
+  'ym_img': { required: true, message: '封面不能为空', trigger: 'submit' },
+  'ym_brief': { required: true, message: '简介不能为空', trigger: 'submit' },
+  'ym_sm_id': { required: true, message: '学校编号不能为空', trigger: 'submit' },
+  'ym_sm_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'grade_id': { required: true, message: '年级编号不能为空', trigger: 'submit' },
+  'subject_id': { required: true, message: '学科编号不能为空', trigger: 'submit' },
+  'grade_name': { required: true, message: '年级名称不能为空', trigger: 'submit' },
+  'subject_name': { required: true, message: '学科名称不能为空', trigger: 'submit' },
+  'ym_cm_id': { required: true, message: '班级编号不能为空', trigger: 'submit' },
+  'ym_cm_name': { required: true, message: '班级名称不能为空', trigger: 'submit' },
+  'ym_student_num': { required: true, message: '学生数不能为空', trigger: 'submit' },
+  'ym_timetable_json': { required: true, message: '课表JSON不能为空', trigger: 'submit' },
+  'ym_part_teacher': { required: true, message: '兼职教师不能为空', trigger: 'submit' },
+  'ym_date': { required: true, message: '约课日期不能为空', trigger: 'submit' },
+  'ym_weekday': { required: true, message: '周天不能为空', trigger: 'submit' },
+  'ym_lesson_no': { required: true, message: '课节次不能为空', trigger: 'submit' },
+  'ym_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
+  'team_id': { required: true, message: '分册不能为空', trigger: 'submit' },
 })
 
 // #endregion
 
-// #region (request api): 
-function queryApi(){
+// #region (request api):
+function queryApi() {
   loading_table.value = true
   return request({
     url: URL_CUT + '/index',
     data: {
       ...queryForm_Data.value,
       limit: limit.value,
-      page: currentPage.value
+      page: currentPage.value,
+      ym_status: 1
     }
-  }).then((response:{data:{total_rows:string,page_data:TYPE_TABLE_FIELD[]}}) => {
+  }).then((response: { data: { total_rows: string, page_data: TYPE_TABLE_FIELD[] } }) => {
     const { data } = response
     total.value = parseInt(data.total_rows)
     tableData.value = data.page_data
@@ -224,44 +225,44 @@ function queryApi(){
   })
 }
 
-function addApi(data:TYPE_TABLE_FIELD){
+function addApi(data: TYPE_TABLE_FIELD) {
   return request({
     url: URL_CUT + '/add',
     data: {
-      [URL_SUBMIT_KEY]:data,
+      [URL_SUBMIT_KEY]: data,
     }
   })
 }
 
-function editApi(data:Partial<TYPE_TABLE_FIELD>){
+function editApi(data: Partial<TYPE_TABLE_FIELD>) {
   return request({
     url: URL_CUT + '/edit',
     data: {
-      [TABLE_KEY]:data[TABLE_KEY],
-      [URL_SUBMIT_KEY]:pick(data,['ym_name','ym_img','ym_brief','ym_sm_id','ym_sm_name','grade_id','subject_id','grade_name','subject_name','ym_cm_id','ym_cm_name','ym_student_num','ym_timetable_json','ym_part_teacher','ym_date','ym_weekday','ym_lesson_no','ym_status','team_id',]),
+      [TABLE_KEY]: data[TABLE_KEY],
+      [URL_SUBMIT_KEY]: pick(data, ['ym_name', 'ym_img', 'ym_brief', 'ym_sm_id', 'ym_sm_name', 'grade_id', 'subject_id', 'grade_name', 'subject_name', 'ym_cm_id', 'ym_cm_name', 'ym_student_num', 'ym_timetable_json', 'ym_part_teacher', 'ym_date', 'ym_weekday', 'ym_lesson_no', 'ym_status', 'team_id',]),
     }
   })
 }
 
-function deleteApi(id:string|string[]){
+function deleteApi(id: string | string[]) {
   return request({
     url: URL_CUT + '/delete',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function detailApi(id:string){
+function detailApi(id: string) {
   return request({
     url: URL_CUT + '/detail',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function importApi(data:{file:File}){  
+function importApi(data: { file: File }) {
   return request({
     $type: 'import',
     url: URL_CUT + '/import',
@@ -269,23 +270,23 @@ function importApi(data:{file:File}){
   } as AxiosRequestConfig)
 }
 
-function exportApi(){
+function exportApi() {
   return download(URL_CUT + '/index', queryForm_Data.value)
 }
 
 const API_MAP = {
-  query:queryApi,
-  add:addApi,
-  edit:editApi,
-  delete:deleteApi,
-  detail:detailApi,
-  import:importApi,
-  export:exportApi,
+  query: queryApi,
+  add: addApi,
+  edit: editApi,
+  delete: deleteApi,
+  detail: detailApi,
+  import: importApi,
+  export: exportApi,
 }
 // #endregion
 
 // #region (page init)
-function init(){
+function init() {
   queryApi()
 }
 init()
@@ -297,25 +298,37 @@ init()
   <div class="card flex-grow flex flex-col">
     <el-form inline :model="queryForm_Data">
       <!-- <el-form-item label="关键字"><el-input v-model="queryForm_Data.keyword" ></el-input></el-form-item> -->
-      <el-form-item label="名称"><el-input v-model="queryForm_Data.ym_name" clearable /></el-form-item>
-      <el-form-item label="封面"><file-upload v-model:part="queryForm_Data.ym_img" /></el-form-item>
+      <el-form-item label="名称">
+        <el-input v-model="queryForm_Data.ym_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="封面"><file-upload v-model:part="queryForm_Data.ym_img" /></el-form-item>
       <el-form-item label="简介"><el-input v-model="queryForm_Data.ym_brief" clearable /></el-form-item>
-      <el-form-item label="学校编号"><el-input v-model="queryForm_Data.ym_sm_id" clearable /></el-form-item>
-      <el-form-item label="学校名称"><el-input v-model="queryForm_Data.ym_sm_name" clearable /></el-form-item>
-      <el-form-item label="年级编号"><el-input v-model="queryForm_Data.grade_id" clearable /></el-form-item>
-      <el-form-item label="学科编号"><el-input v-model="queryForm_Data.subject_id" clearable /></el-form-item>
-      <el-form-item label="年级名称"><el-input v-model="queryForm_Data.grade_name" clearable /></el-form-item>
-      <el-form-item label="学科名称"><el-input v-model="queryForm_Data.subject_name" clearable /></el-form-item>
-      <el-form-item label="班级编号"><el-input v-model="queryForm_Data.ym_cm_id" clearable /></el-form-item>
-      <el-form-item label="班级名称"><el-input v-model="queryForm_Data.ym_cm_name" clearable /></el-form-item>
-      <el-form-item label="学生数"><el-input v-model="queryForm_Data.ym_student_num" clearable /></el-form-item>
-      <el-form-item label="课表JSON"><el-input v-model="queryForm_Data.ym_timetable_json" type="textarea" /></el-form-item>
-      <el-form-item label="兼职教师"><el-input v-model="queryForm_Data.ym_part_teacher" clearable /></el-form-item>
-      <el-form-item label="约课日期"><el-input v-model="queryForm_Data.ym_date" clearable /></el-form-item>
-      <el-form-item label="周天"><el-select v-model="queryForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
-      <el-form-item label="课节次"><el-select v-model="queryForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item>
-      <el-form-item label="审核状态"><el-select v-model="queryForm_Data.ym_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="已审核" value="2" /><el-option label="不通过" value="3" /></el-select></el-form-item>
-      <el-form-item label="分册"><el-select v-model="queryForm_Data.team_id" clearable filterable ><el-option label="上册" value="1" /><el-option label="下册" value="2" /></el-select></el-form-item>
+      <el-form-item label="学校编号"><el-input v-model="queryForm_Data.ym_sm_id" clearable /></el-form-item> -->
+      <el-form-item label="学校名称">
+        <el-input v-model="queryForm_Data.ym_sm_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="年级编号"><el-input v-model="queryForm_Data.grade_id" clearable /></el-form-item> -->
+      <!-- <el-form-item label="学科编号"><el-input v-model="queryForm_Data.subject_id" clearable /></el-form-item> -->
+      <el-form-item label="年级名称">
+        <el-input v-model="queryForm_Data.grade_name" clearable />
+      </el-form-item>
+      <el-form-item label="学科名称">
+        <el-input v-model="queryForm_Data.subject_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="班级编号"><el-input v-model="queryForm_Data.ym_cm_id" clearable /></el-form-item> -->
+      <el-form-item label="班级名称">
+        <el-input v-model="queryForm_Data.ym_cm_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="学生数"><el-input v-model="queryForm_Data.ym_student_num" clearable /></el-form-item> -->
+      <!-- <el-form-item label="课表JSON"><el-input v-model="queryForm_Data.ym_timetable_json" type="textarea" /></el-form-item> -->
+      <!-- <el-form-item label="兼职教师"><el-input v-model="queryForm_Data.ym_part_teacher" clearable /></el-form-item> -->
+      <el-form-item label="约课日期">
+        <el-date-picker v-model="queryForm_Data.ym_date" type="date" value-format="YYYY-MM-DD" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="周天"><el-select v-model="queryForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
+      <el-form-item label="课节次"><el-select v-model="queryForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item> -->
+      <!-- <el-form-item label="审核状态"><el-select v-model="queryForm_Data.ym_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="已审核" value="2" /><el-option label="不通过" value="3" /></el-select></el-form-item> -->
+      <!-- <el-form-item label="分册"><el-select v-model="queryForm_Data.team_id" clearable filterable ><el-option label="上册" value="1" /><el-option label="下册" value="2" /></el-select></el-form-item> -->
       <el-form-item>
         <el-button @click="handleQueryFormBtn_search" type="primary">搜索</el-button>
         <el-button @click="handleQueryFormBtn_clear" type="warning">清空</el-button>
@@ -323,10 +336,10 @@ init()
     </el-form>
     <div class="divider"></div>
     <div>
-        <import-button :url="URL_CUT_REF"></import-button>
-        <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
-        <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
-        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button>
+      <!-- <import-button :url="URL_CUT_REF"></import-button> -->
+      <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
+      <!-- <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
+        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button> -->
     </div>
 
     <div class="divider"></div>
@@ -335,30 +348,34 @@ init()
         element-loading-background="#ffffff70">
         <el-table-column type="selection"></el-table-column>
         <el-table-column prop="ym_name" label="名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_img" label="封面" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_brief" label="简介" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_sm_id" label="学校编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_img" label="封面" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_brief" label="简介" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_sm_id" label="学校编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_sm_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="grade_id" label="年级编号" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="subject_id" label="学科编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="grade_id" label="年级编号" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="subject_id" label="学科编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="grade_name" label="年级名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="subject_name" label="学科名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_cm_id" label="班级编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_cm_id" label="班级编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_cm_name" label="班级名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="ym_student_num" label="学生数" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_timetable_json" label="课表JSON" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_part_teacher" label="兼职教师" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_timetable_json" label="课表JSON" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_part_teacher" label="兼职教师" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_date" label="约课日期" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_weekday" label="周天" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_lesson_no" label="课节次" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_weekday" label="周天" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_lesson_no" label="课节次" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_status" label="审核状态" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="team_id" label="分册" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="team_id" label="分册" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column label="操作" fixed="right">
           <template #default="scope">
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary" >编辑</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary" >审核</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary" >详情</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary" >删除</el-button>
+            <!-- <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary">编辑
+            </el-button> -->
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary">审核
+            </el-button>
+            <!-- <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary">详情
+            </el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary">删除
+            </el-button> -->
           </template>
         </el-table-column>
       </el-table>
@@ -371,26 +388,85 @@ init()
   </div>
 
   <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit" label-width="120px">
-      <el-form-item label="名称" prop="ym_name"><el-input v-model="dialogForm_Data.ym_name" clearable /></el-form-item>
-      <el-form-item label="封面" prop="ym_img"><file-upload v-model:part="dialogForm_Data.ym_img" /></el-form-item>
-      <el-form-item label="简介" prop="ym_brief"><el-input v-model="dialogForm_Data.ym_brief" clearable /></el-form-item>
-      <el-form-item label="学校编号" prop="ym_sm_id"><el-input v-model="dialogForm_Data.ym_sm_id" clearable /></el-form-item>
-      <el-form-item label="学校名称" prop="ym_sm_name"><el-input v-model="dialogForm_Data.ym_sm_name" clearable /></el-form-item>
-      <el-form-item label="年级编号" prop="grade_id"><el-input v-model="dialogForm_Data.grade_id" clearable /></el-form-item>
-      <el-form-item label="学科编号" prop="subject_id"><el-input v-model="dialogForm_Data.subject_id" clearable /></el-form-item>
-      <el-form-item label="年级名称" prop="grade_name"><el-input v-model="dialogForm_Data.grade_name" clearable /></el-form-item>
-      <el-form-item label="学科名称" prop="subject_name"><el-input v-model="dialogForm_Data.subject_name" clearable /></el-form-item>
-      <el-form-item label="班级编号" prop="ym_cm_id"><el-input v-model="dialogForm_Data.ym_cm_id" clearable /></el-form-item>
-      <el-form-item label="班级名称" prop="ym_cm_name"><el-input v-model="dialogForm_Data.ym_cm_name" clearable /></el-form-item>
-      <el-form-item label="学生数" prop="ym_student_num"><el-input v-model="dialogForm_Data.ym_student_num" clearable /></el-form-item>
-      <el-form-item label="课表JSON" prop="ym_timetable_json"><el-input v-model="dialogForm_Data.ym_timetable_json" type="textarea" /></el-form-item>
-      <el-form-item label="兼职教师" prop="ym_part_teacher"><el-input v-model="dialogForm_Data.ym_part_teacher" clearable /></el-form-item>
-      <el-form-item label="约课日期" prop="ym_date"><el-input v-model="dialogForm_Data.ym_date" clearable /></el-form-item>
-      <el-form-item label="周天" prop="ym_weekday"><el-select v-model="dialogForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
-      <el-form-item label="课节次" prop="ym_lesson_no"><el-select v-model="dialogForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item>
-      <el-form-item label="审核状态" prop="ym_status"><el-radio-group v-model="dialogForm_Data.ym_status"><el-radio label="1">待审核</el-radio><el-radio label="2">已审核</el-radio><el-radio label="3">不通过</el-radio></el-radio-group></el-form-item>
-      <el-form-item label="分册" prop="team_id"><el-radio-group v-model="dialogForm_Data.team_id"><el-radio label="1">上册</el-radio><el-radio label="2">下册</el-radio></el-radio-group></el-form-item>
+    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit"
+      label-width="120px">
+      <el-form-item label="名称" prop="ym_name">
+        <el-input v-model="dialogForm_Data.ym_name" clearable />
+      </el-form-item>
+      <el-form-item label="封面" prop="ym_img">
+        <file-upload v-model:part="dialogForm_Data.ym_img" />
+      </el-form-item>
+      <el-form-item label="简介" prop="ym_brief">
+        <el-input v-model="dialogForm_Data.ym_brief" clearable />
+      </el-form-item>
+      <el-form-item label="学校编号" prop="ym_sm_id">
+        <el-input v-model="dialogForm_Data.ym_sm_id" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称" prop="ym_sm_name">
+        <el-input v-model="dialogForm_Data.ym_sm_name" clearable />
+      </el-form-item>
+      <el-form-item label="年级编号" prop="grade_id">
+        <el-input v-model="dialogForm_Data.grade_id" clearable />
+      </el-form-item>
+      <el-form-item label="学科编号" prop="subject_id">
+        <el-input v-model="dialogForm_Data.subject_id" clearable />
+      </el-form-item>
+      <el-form-item label="年级名称" prop="grade_name">
+        <el-input v-model="dialogForm_Data.grade_name" clearable />
+      </el-form-item>
+      <el-form-item label="学科名称" prop="subject_name">
+        <el-input v-model="dialogForm_Data.subject_name" clearable />
+      </el-form-item>
+      <el-form-item label="班级编号" prop="ym_cm_id">
+        <el-input v-model="dialogForm_Data.ym_cm_id" clearable />
+      </el-form-item>
+      <el-form-item label="班级名称" prop="ym_cm_name">
+        <el-input v-model="dialogForm_Data.ym_cm_name" clearable />
+      </el-form-item>
+      <el-form-item label="学生数" prop="ym_student_num">
+        <el-input v-model="dialogForm_Data.ym_student_num" clearable />
+      </el-form-item>
+      <el-form-item label="课表JSON" prop="ym_timetable_json">
+        <el-input v-model="dialogForm_Data.ym_timetable_json" type="textarea" />
+      </el-form-item>
+      <el-form-item label="兼职教师" prop="ym_part_teacher">
+        <el-input v-model="dialogForm_Data.ym_part_teacher" clearable />
+      </el-form-item>
+      <el-form-item label="约课日期" prop="ym_date">
+        <el-input v-model="dialogForm_Data.ym_date" clearable />
+      </el-form-item>
+      <el-form-item label="周天" prop="ym_weekday">
+        <el-select v-model="dialogForm_Data.ym_weekday" clearable filterable>
+          <el-option label="星期一" value="1" />
+          <el-option label="星期二" value="2" />
+          <el-option label="星期三" value="3" />
+          <el-option label="星期四" value="4" />
+          <el-option label="星期五" value="5" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="课节次" prop="ym_lesson_no">
+        <el-select v-model="dialogForm_Data.ym_lesson_no" clearable filterable>
+          <el-option label="第一节(9:00~9:40)" value="1" />
+          <el-option label="第二节(9:50~10:30)" value="2" />
+          <el-option label="第三节(10:45~11:25)" value="3" />
+          <el-option label="第四节(13:40~14:20)" value="4" />
+          <el-option label="第五节(14:35~15:15)" value="5" />
+          <el-option label="第六节(15:25~16:05)" value="6" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="审核状态" prop="ym_status">
+        <el-radio-group v-model="dialogForm_Data.ym_status">
+          <el-radio label="1">待审核</el-radio>
+          <el-radio label="2">已审核</el-radio>
+          <el-radio label="3">不通过</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="分册" prop="team_id">
+        <el-radio-group v-model="dialogForm_Data.team_id">
+          <el-radio label="1">上册</el-radio>
+          <el-radio label="2">下册</el-radio>
+        </el-radio-group>
+      </el-form-item>
       <div class="flex justify-center">
         <el-button @click="handleDialogFormBtn_submit('dialogForm_Ref_addOrEdit')" type="primary">提交</el-button>
         <el-button @click="handleDialogFormBtn_cancel('dialogForm_Ref_addOrEdit')" type="default">取消</el-button>
@@ -402,8 +478,8 @@ init()
     <el-form :model="dialogForm_Data" ref="dialogForm_Ref_audit" :rules="dialogForm_Rules_audit" label-width="120px">
       <el-form-item label="状态">
         <el-radio-group v-model="dialogForm_Data[dialogForm_Field_audit.FLAG]">
-          <el-radio label="1">通过</el-radio>
-          <el-radio label="2">未通过</el-radio>
+          <el-radio label="2">通过</el-radio>
+          <el-radio label="3">未通过</el-radio>
         </el-radio-group>
       </el-form-item>
       <!-- <el-form-item label="原因" v-show="dialogForm_Data[dialogForm_Field_audit.FLAG] === '1'">

+ 258 - 182
src/pages/shgl/shgl/yksq/wtg.vue

@@ -18,7 +18,7 @@ const router = useRouter()
 
 // #region (variable)
 const loading_table = ref(true)
-let whichDialogSubmit:'add'|'edit'
+let whichDialogSubmit: 'add' | 'edit'
 // #endregion
 
 // #region (type)
@@ -53,73 +53,73 @@ type TYPE_TABLE_FIELD = {
 const queryForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
 const handleQueryFormBtn_search = () => {
-      queryApi()
-    }
+  queryApi()
+}
 const handleQueryFormBtn_clear = () => {
-      queryForm_Data.value = {}
-    }
+  queryForm_Data.value = {}
+}
 // #endregion
 
 // #region (table selection)
 const multipleSelection = ref<TYPE_TABLE_FIELD[]>([])
-const handleSelectionChange = (val:TYPE_TABLE_FIELD[]) => {
+const handleSelectionChange = (val: TYPE_TABLE_FIELD[]) => {
   multipleSelection.value = val
 }
 // #endregion
 
 // #region (table row)
 const handleTableRowBtn_import = async ({ file }: { file: File }) => {
-      const res = await API_MAP['import']({ file })
-      if(res.code === '1'){
-        queryApi()
-        ElMessage.success(res.msg)
-      }
-    }
+  const res = await API_MAP['import']({ file })
+  if (res.code === '1') {
+    queryApi()
+    ElMessage.success(res.msg)
+  }
+}
 const handleTableRowBtn_export = () => {
-      exportApi()
-    }
+  exportApi()
+}
 const handleTableRowBtn_add = () => {
-      whichDialogSubmit = 'add'
-      dialogForm_Data.value = {}
-      dialogVisible_addOrEdit.value = true
-    }
+  whichDialogSubmit = 'add'
+  dialogForm_Data.value = {}
+  dialogVisible_addOrEdit.value = true
+}
 const handleTableRowBtn_delete = async () => {
-      await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY]))
-      queryApi()
-    }
+  await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY]))
+  queryApi()
+}
 // #endregion
 
 // #region (table body)
 const tableData = ref<TYPE_TABLE_FIELD[]>([])
-const DetailName = '-SHGL-YKSQ-WTG'
+const DetailName = '-SHGL-YKSQ-DSH'
 const DetailParam = 'aid'
 
-const handleTableColBtn_edit = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      const res = await detailApi(scope.row[TABLE_KEY])
-      dialogForm_Data.value = (res.data.one_info)
-      dialogVisible_addOrEdit.value = true
-    }
-const handleTableColBtn_audit = (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
-      dialogVisible_audit.value = true
-    }
-const handleTableColBtn_detail = (scope:{row:TYPE_TABLE_FIELD}) => {
-      router.push({ name:DetailName, params:{ [DetailParam]:scope.row[TABLE_KEY]} })
-    }
-const handleTableColBtn_delete = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      await deleteApi(scope.row[TABLE_KEY])
-      queryApi()
-    }
+const handleTableColBtn_edit = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  const res = await detailApi(scope.row[TABLE_KEY])
+  dialogForm_Data.value = (res.data.one_info)
+  dialogVisible_addOrEdit.value = true
+}
+const handleTableColBtn_audit = (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
+  dialogVisible_audit.value = true
+}
+const handleTableColBtn_detail = (scope: { row: TYPE_TABLE_FIELD }) => {
+  router.push({ name: DetailName, params: { [DetailParam]: scope.row[TABLE_KEY] } })
+}
+const handleTableColBtn_delete = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  await deleteApi(scope.row[TABLE_KEY])
+  queryApi()
+}
 // #endregion
 
 // #region (pagination)
 const total = ref(0)
 const limit = ref(10)
 
-const currentPage=ref(1) 
-function handleCurrentChange(){
+const currentPage = ref(1)
+function handleCurrentChange() {
   queryApi()
 }
 // #endregion
@@ -127,94 +127,95 @@ function handleCurrentChange(){
 // #region (dialog base)
 const dialogForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
-const handleDialogFormBtn_submit = async (formRefKey:string,extendData?:Partial<TYPE_TABLE_FIELD>) => {
-      const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid:boolean) => valid)
-      if (isValid) {
-        await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({...dialogForm_Data.value,...extendData}))
-        handleDialogFormBtn_cancel()
-        queryApi()
-      }
-    }
-const handleDialogFormBtn_cancel = (formRefKey?:string) => {
-      dialogVisible_addOrEdit.value = false
-      dialogVisible_audit.value = false
-    }
+const handleDialogFormBtn_submit = async (formRefKey: string, extendData?: Partial<TYPE_TABLE_FIELD>) => {
+  const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid: boolean) => valid)
+  if (isValid) {
+    await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({ ...dialogForm_Data.value, ...extendData }))
+    handleDialogFormBtn_cancel()
+    queryApi()
+  }
+}
+const handleDialogFormBtn_cancel = (formRefKey?: string) => {
+  dialogVisible_addOrEdit.value = false
+  dialogVisible_audit.value = false
+}
 // #endregion
 
 // #region (dialog add/edit)
 const dialogVisible_addOrEdit = ref<boolean>(false)
 
-const dialogForm_Ref_addOrEdit= ref<FormInstance>()
-const dialogForm_Rules_addOrEdit = reactive({ 
-  'ym_name':{required : true,message:'名称不能为空',trigger:'submit'},
-  'ym_img':{required : true,message:'封面不能为空',trigger:'submit'},
-  'ym_brief':{required : true,message:'简介不能为空',trigger:'submit'},
-  'ym_sm_id':{required : true,message:'学校编号不能为空',trigger:'submit'},
-  'ym_sm_name':{required : true,message:'学校名称不能为空',trigger:'submit'},
-  'grade_id':{required : true,message:'年级编号不能为空',trigger:'submit'},
-  'subject_id':{required : true,message:'学科编号不能为空',trigger:'submit'},
-  'grade_name':{required : true,message:'年级名称不能为空',trigger:'submit'},
-  'subject_name':{required : true,message:'学科名称不能为空',trigger:'submit'},
-  'ym_cm_id':{required : true,message:'班级编号不能为空',trigger:'submit'},
-  'ym_cm_name':{required : true,message:'班级名称不能为空',trigger:'submit'},
-  'ym_student_num':{required : true,message:'学生数不能为空',trigger:'submit'},
-  'ym_timetable_json':{required : true,message:'课表JSON不能为空',trigger:'submit'},
-  'ym_part_teacher':{required : true,message:'兼职教师不能为空',trigger:'submit'},
-  'ym_date':{required : true,message:'约课日期不能为空',trigger:'submit'},
-  'ym_weekday':{required : true,message:'周天不能为空',trigger:'submit'},
-  'ym_lesson_no':{required : true,message:'课节次不能为空',trigger:'submit'},
-  'ym_status':{required : true,message:'审核状态不能为空',trigger:'submit'},
-  'team_id':{required : true,message:'分册不能为空',trigger:'submit'},
+const dialogForm_Ref_addOrEdit = ref<FormInstance>()
+const dialogForm_Rules_addOrEdit = reactive({
+  'ym_name': { required: true, message: '名称不能为空', trigger: 'submit' },
+  'ym_img': { required: true, message: '封面不能为空', trigger: 'submit' },
+  'ym_brief': { required: true, message: '简介不能为空', trigger: 'submit' },
+  'ym_sm_id': { required: true, message: '学校编号不能为空', trigger: 'submit' },
+  'ym_sm_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'grade_id': { required: true, message: '年级编号不能为空', trigger: 'submit' },
+  'subject_id': { required: true, message: '学科编号不能为空', trigger: 'submit' },
+  'grade_name': { required: true, message: '年级名称不能为空', trigger: 'submit' },
+  'subject_name': { required: true, message: '学科名称不能为空', trigger: 'submit' },
+  'ym_cm_id': { required: true, message: '班级编号不能为空', trigger: 'submit' },
+  'ym_cm_name': { required: true, message: '班级名称不能为空', trigger: 'submit' },
+  'ym_student_num': { required: true, message: '学生数不能为空', trigger: 'submit' },
+  'ym_timetable_json': { required: true, message: '课表JSON不能为空', trigger: 'submit' },
+  'ym_part_teacher': { required: true, message: '兼职教师不能为空', trigger: 'submit' },
+  'ym_date': { required: true, message: '约课日期不能为空', trigger: 'submit' },
+  'ym_weekday': { required: true, message: '周天不能为空', trigger: 'submit' },
+  'ym_lesson_no': { required: true, message: '课节次不能为空', trigger: 'submit' },
+  'ym_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
+  'team_id': { required: true, message: '分册不能为空', trigger: 'submit' },
 })
 // #endregion
 
 // #region (dialog audit)
 const dialogVisible_audit = ref<boolean>(false)
 
-const dialogForm_Field_audit= reactive<{
-  FLAG:keyof TYPE_TABLE_FIELD,
-  REASON?:keyof TYPE_TABLE_FIELD
+const dialogForm_Field_audit = reactive<{
+  FLAG: keyof TYPE_TABLE_FIELD,
+  REASON?: keyof TYPE_TABLE_FIELD
 }>({
-  FLAG:'ym_id',
+  FLAG: 'ym_status',
   // REASON:'ym_id'
 })
 
-const dialogForm_Ref_audit= ref<FormInstance>()
-const dialogForm_Rules_audit = reactive<FormRules>({ 
-  'ym_name':{required : true ,message:'名称不能为空',trigger:'submit'},
-  'ym_img':{required : true ,message:'封面不能为空',trigger:'submit'},
-  'ym_brief':{required : true ,message:'简介不能为空',trigger:'submit'},
-  'ym_sm_id':{required : true ,message:'学校编号不能为空',trigger:'submit'},
-  'ym_sm_name':{required : true ,message:'学校名称不能为空',trigger:'submit'},
-  'grade_id':{required : true ,message:'年级编号不能为空',trigger:'submit'},
-  'subject_id':{required : true ,message:'学科编号不能为空',trigger:'submit'},
-  'grade_name':{required : true ,message:'年级名称不能为空',trigger:'submit'},
-  'subject_name':{required : true ,message:'学科名称不能为空',trigger:'submit'},
-  'ym_cm_id':{required : true ,message:'班级编号不能为空',trigger:'submit'},
-  'ym_cm_name':{required : true ,message:'班级名称不能为空',trigger:'submit'},
-  'ym_student_num':{required : true ,message:'学生数不能为空',trigger:'submit'},
-  'ym_timetable_json':{required : true ,message:'课表JSON不能为空',trigger:'submit'},
-  'ym_part_teacher':{required : true ,message:'兼职教师不能为空',trigger:'submit'},
-  'ym_date':{required : true ,message:'约课日期不能为空',trigger:'submit'},
-  'ym_weekday':{required : true ,message:'周天不能为空',trigger:'submit'},
-  'ym_lesson_no':{required : true ,message:'课节次不能为空',trigger:'submit'},
-  'ym_status':{required : true ,message:'审核状态不能为空',trigger:'submit'},
-  'team_id':{required : true ,message:'分册不能为空',trigger:'submit'},
+const dialogForm_Ref_audit = ref<FormInstance>()
+const dialogForm_Rules_audit = reactive<FormRules>({
+  'ym_name': { required: true, message: '名称不能为空', trigger: 'submit' },
+  'ym_img': { required: true, message: '封面不能为空', trigger: 'submit' },
+  'ym_brief': { required: true, message: '简介不能为空', trigger: 'submit' },
+  'ym_sm_id': { required: true, message: '学校编号不能为空', trigger: 'submit' },
+  'ym_sm_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'grade_id': { required: true, message: '年级编号不能为空', trigger: 'submit' },
+  'subject_id': { required: true, message: '学科编号不能为空', trigger: 'submit' },
+  'grade_name': { required: true, message: '年级名称不能为空', trigger: 'submit' },
+  'subject_name': { required: true, message: '学科名称不能为空', trigger: 'submit' },
+  'ym_cm_id': { required: true, message: '班级编号不能为空', trigger: 'submit' },
+  'ym_cm_name': { required: true, message: '班级名称不能为空', trigger: 'submit' },
+  'ym_student_num': { required: true, message: '学生数不能为空', trigger: 'submit' },
+  'ym_timetable_json': { required: true, message: '课表JSON不能为空', trigger: 'submit' },
+  'ym_part_teacher': { required: true, message: '兼职教师不能为空', trigger: 'submit' },
+  'ym_date': { required: true, message: '约课日期不能为空', trigger: 'submit' },
+  'ym_weekday': { required: true, message: '周天不能为空', trigger: 'submit' },
+  'ym_lesson_no': { required: true, message: '课节次不能为空', trigger: 'submit' },
+  'ym_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
+  'team_id': { required: true, message: '分册不能为空', trigger: 'submit' },
 })
 
 // #endregion
 
-// #region (request api): 
-function queryApi(){
+// #region (request api):
+function queryApi() {
   loading_table.value = true
   return request({
     url: URL_CUT + '/index',
     data: {
       ...queryForm_Data.value,
       limit: limit.value,
-      page: currentPage.value
+      page: currentPage.value,
+      ym_status: 3
     }
-  }).then((response:{data:{total_rows:string,page_data:TYPE_TABLE_FIELD[]}}) => {
+  }).then((response: { data: { total_rows: string, page_data: TYPE_TABLE_FIELD[] } }) => {
     const { data } = response
     total.value = parseInt(data.total_rows)
     tableData.value = data.page_data
@@ -224,44 +225,44 @@ function queryApi(){
   })
 }
 
-function addApi(data:TYPE_TABLE_FIELD){
+function addApi(data: TYPE_TABLE_FIELD) {
   return request({
     url: URL_CUT + '/add',
     data: {
-      [URL_SUBMIT_KEY]:data,
+      [URL_SUBMIT_KEY]: data,
     }
   })
 }
 
-function editApi(data:Partial<TYPE_TABLE_FIELD>){
+function editApi(data: Partial<TYPE_TABLE_FIELD>) {
   return request({
     url: URL_CUT + '/edit',
     data: {
-      [TABLE_KEY]:data[TABLE_KEY],
-      [URL_SUBMIT_KEY]:pick(data,['ym_name','ym_img','ym_brief','ym_sm_id','ym_sm_name','grade_id','subject_id','grade_name','subject_name','ym_cm_id','ym_cm_name','ym_student_num','ym_timetable_json','ym_part_teacher','ym_date','ym_weekday','ym_lesson_no','ym_status','team_id',]),
+      [TABLE_KEY]: data[TABLE_KEY],
+      [URL_SUBMIT_KEY]: pick(data, ['ym_name', 'ym_img', 'ym_brief', 'ym_sm_id', 'ym_sm_name', 'grade_id', 'subject_id', 'grade_name', 'subject_name', 'ym_cm_id', 'ym_cm_name', 'ym_student_num', 'ym_timetable_json', 'ym_part_teacher', 'ym_date', 'ym_weekday', 'ym_lesson_no', 'ym_status', 'team_id',]),
     }
   })
 }
 
-function deleteApi(id:string|string[]){
+function deleteApi(id: string | string[]) {
   return request({
     url: URL_CUT + '/delete',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function detailApi(id:string){
+function detailApi(id: string) {
   return request({
     url: URL_CUT + '/detail',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function importApi(data:{file:File}){  
+function importApi(data: { file: File }) {
   return request({
     $type: 'import',
     url: URL_CUT + '/import',
@@ -269,23 +270,23 @@ function importApi(data:{file:File}){
   } as AxiosRequestConfig)
 }
 
-function exportApi(){
+function exportApi() {
   return download(URL_CUT + '/index', queryForm_Data.value)
 }
 
 const API_MAP = {
-  query:queryApi,
-  add:addApi,
-  edit:editApi,
-  delete:deleteApi,
-  detail:detailApi,
-  import:importApi,
-  export:exportApi,
+  query: queryApi,
+  add: addApi,
+  edit: editApi,
+  delete: deleteApi,
+  detail: detailApi,
+  import: importApi,
+  export: exportApi,
 }
 // #endregion
 
 // #region (page init)
-function init(){
+function init() {
   queryApi()
 }
 init()
@@ -297,25 +298,37 @@ init()
   <div class="card flex-grow flex flex-col">
     <el-form inline :model="queryForm_Data">
       <!-- <el-form-item label="关键字"><el-input v-model="queryForm_Data.keyword" ></el-input></el-form-item> -->
-      <el-form-item label="名称"><el-input v-model="queryForm_Data.ym_name" clearable /></el-form-item>
-      <el-form-item label="封面"><file-upload v-model:part="queryForm_Data.ym_img" /></el-form-item>
+      <el-form-item label="名称">
+        <el-input v-model="queryForm_Data.ym_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="封面"><file-upload v-model:part="queryForm_Data.ym_img" /></el-form-item>
       <el-form-item label="简介"><el-input v-model="queryForm_Data.ym_brief" clearable /></el-form-item>
-      <el-form-item label="学校编号"><el-input v-model="queryForm_Data.ym_sm_id" clearable /></el-form-item>
-      <el-form-item label="学校名称"><el-input v-model="queryForm_Data.ym_sm_name" clearable /></el-form-item>
-      <el-form-item label="年级编号"><el-input v-model="queryForm_Data.grade_id" clearable /></el-form-item>
-      <el-form-item label="学科编号"><el-input v-model="queryForm_Data.subject_id" clearable /></el-form-item>
-      <el-form-item label="年级名称"><el-input v-model="queryForm_Data.grade_name" clearable /></el-form-item>
-      <el-form-item label="学科名称"><el-input v-model="queryForm_Data.subject_name" clearable /></el-form-item>
-      <el-form-item label="班级编号"><el-input v-model="queryForm_Data.ym_cm_id" clearable /></el-form-item>
-      <el-form-item label="班级名称"><el-input v-model="queryForm_Data.ym_cm_name" clearable /></el-form-item>
-      <el-form-item label="学生数"><el-input v-model="queryForm_Data.ym_student_num" clearable /></el-form-item>
-      <el-form-item label="课表JSON"><el-input v-model="queryForm_Data.ym_timetable_json" type="textarea" /></el-form-item>
-      <el-form-item label="兼职教师"><el-input v-model="queryForm_Data.ym_part_teacher" clearable /></el-form-item>
-      <el-form-item label="约课日期"><el-input v-model="queryForm_Data.ym_date" clearable /></el-form-item>
-      <el-form-item label="周天"><el-select v-model="queryForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
-      <el-form-item label="课节次"><el-select v-model="queryForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item>
-      <el-form-item label="审核状态"><el-select v-model="queryForm_Data.ym_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="已审核" value="2" /><el-option label="不通过" value="3" /></el-select></el-form-item>
-      <el-form-item label="分册"><el-select v-model="queryForm_Data.team_id" clearable filterable ><el-option label="上册" value="1" /><el-option label="下册" value="2" /></el-select></el-form-item>
+      <el-form-item label="学校编号"><el-input v-model="queryForm_Data.ym_sm_id" clearable /></el-form-item> -->
+      <el-form-item label="学校名称">
+        <el-input v-model="queryForm_Data.ym_sm_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="年级编号"><el-input v-model="queryForm_Data.grade_id" clearable /></el-form-item> -->
+      <!-- <el-form-item label="学科编号"><el-input v-model="queryForm_Data.subject_id" clearable /></el-form-item> -->
+      <el-form-item label="年级名称">
+        <el-input v-model="queryForm_Data.grade_name" clearable />
+      </el-form-item>
+      <el-form-item label="学科名称">
+        <el-input v-model="queryForm_Data.subject_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="班级编号"><el-input v-model="queryForm_Data.ym_cm_id" clearable /></el-form-item> -->
+      <el-form-item label="班级名称">
+        <el-input v-model="queryForm_Data.ym_cm_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="学生数"><el-input v-model="queryForm_Data.ym_student_num" clearable /></el-form-item> -->
+      <!-- <el-form-item label="课表JSON"><el-input v-model="queryForm_Data.ym_timetable_json" type="textarea" /></el-form-item> -->
+      <!-- <el-form-item label="兼职教师"><el-input v-model="queryForm_Data.ym_part_teacher" clearable /></el-form-item> -->
+      <el-form-item label="约课日期">
+        <el-date-picker v-model="queryForm_Data.ym_date" type="date" value-format="YYYY-MM-DD" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="周天"><el-select v-model="queryForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
+      <el-form-item label="课节次"><el-select v-model="queryForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item> -->
+      <!-- <el-form-item label="审核状态"><el-select v-model="queryForm_Data.ym_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="已审核" value="2" /><el-option label="不通过" value="3" /></el-select></el-form-item> -->
+      <!-- <el-form-item label="分册"><el-select v-model="queryForm_Data.team_id" clearable filterable ><el-option label="上册" value="1" /><el-option label="下册" value="2" /></el-select></el-form-item> -->
       <el-form-item>
         <el-button @click="handleQueryFormBtn_search" type="primary">搜索</el-button>
         <el-button @click="handleQueryFormBtn_clear" type="warning">清空</el-button>
@@ -323,10 +336,10 @@ init()
     </el-form>
     <div class="divider"></div>
     <div>
-        <import-button :url="URL_CUT_REF"></import-button>
-        <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
-        <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
-        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button>
+      <!-- <import-button :url="URL_CUT_REF"></import-button> -->
+      <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
+      <!-- <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
+        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button> -->
     </div>
 
     <div class="divider"></div>
@@ -335,32 +348,36 @@ init()
         element-loading-background="#ffffff70">
         <el-table-column type="selection"></el-table-column>
         <el-table-column prop="ym_name" label="名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_img" label="封面" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_brief" label="简介" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_sm_id" label="学校编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_img" label="封面" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_brief" label="简介" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_sm_id" label="学校编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_sm_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="grade_id" label="年级编号" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="subject_id" label="学科编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="grade_id" label="年级编号" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="subject_id" label="学科编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="grade_name" label="年级名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="subject_name" label="学科名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_cm_id" label="班级编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_cm_id" label="班级编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_cm_name" label="班级名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="ym_student_num" label="学生数" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_timetable_json" label="课表JSON" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_part_teacher" label="兼职教师" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_timetable_json" label="课表JSON" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_part_teacher" label="兼职教师" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_date" label="约课日期" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_weekday" label="周天" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_lesson_no" label="课节次" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_weekday" label="周天" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_lesson_no" label="课节次" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_status" label="审核状态" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="team_id" label="分册" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column label="操作" fixed="right">
+        <!-- <el-table-column prop="team_id" label="分册" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column label="操作" fixed="right">
           <template #default="scope">
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary" >编辑</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary" >审核</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary" >详情</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary" >删除</el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary">编辑
+            </el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary">审核
+            </el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary">详情
+            </el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary">删除
+            </el-button>
           </template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
     </div>
 
@@ -371,26 +388,85 @@ init()
   </div>
 
   <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit" label-width="120px">
-      <el-form-item label="名称" prop="ym_name"><el-input v-model="dialogForm_Data.ym_name" clearable /></el-form-item>
-      <el-form-item label="封面" prop="ym_img"><file-upload v-model:part="dialogForm_Data.ym_img" /></el-form-item>
-      <el-form-item label="简介" prop="ym_brief"><el-input v-model="dialogForm_Data.ym_brief" clearable /></el-form-item>
-      <el-form-item label="学校编号" prop="ym_sm_id"><el-input v-model="dialogForm_Data.ym_sm_id" clearable /></el-form-item>
-      <el-form-item label="学校名称" prop="ym_sm_name"><el-input v-model="dialogForm_Data.ym_sm_name" clearable /></el-form-item>
-      <el-form-item label="年级编号" prop="grade_id"><el-input v-model="dialogForm_Data.grade_id" clearable /></el-form-item>
-      <el-form-item label="学科编号" prop="subject_id"><el-input v-model="dialogForm_Data.subject_id" clearable /></el-form-item>
-      <el-form-item label="年级名称" prop="grade_name"><el-input v-model="dialogForm_Data.grade_name" clearable /></el-form-item>
-      <el-form-item label="学科名称" prop="subject_name"><el-input v-model="dialogForm_Data.subject_name" clearable /></el-form-item>
-      <el-form-item label="班级编号" prop="ym_cm_id"><el-input v-model="dialogForm_Data.ym_cm_id" clearable /></el-form-item>
-      <el-form-item label="班级名称" prop="ym_cm_name"><el-input v-model="dialogForm_Data.ym_cm_name" clearable /></el-form-item>
-      <el-form-item label="学生数" prop="ym_student_num"><el-input v-model="dialogForm_Data.ym_student_num" clearable /></el-form-item>
-      <el-form-item label="课表JSON" prop="ym_timetable_json"><el-input v-model="dialogForm_Data.ym_timetable_json" type="textarea" /></el-form-item>
-      <el-form-item label="兼职教师" prop="ym_part_teacher"><el-input v-model="dialogForm_Data.ym_part_teacher" clearable /></el-form-item>
-      <el-form-item label="约课日期" prop="ym_date"><el-input v-model="dialogForm_Data.ym_date" clearable /></el-form-item>
-      <el-form-item label="周天" prop="ym_weekday"><el-select v-model="dialogForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
-      <el-form-item label="课节次" prop="ym_lesson_no"><el-select v-model="dialogForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item>
-      <el-form-item label="审核状态" prop="ym_status"><el-radio-group v-model="dialogForm_Data.ym_status"><el-radio label="1">待审核</el-radio><el-radio label="2">已审核</el-radio><el-radio label="3">不通过</el-radio></el-radio-group></el-form-item>
-      <el-form-item label="分册" prop="team_id"><el-radio-group v-model="dialogForm_Data.team_id"><el-radio label="1">上册</el-radio><el-radio label="2">下册</el-radio></el-radio-group></el-form-item>
+    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit"
+      label-width="120px">
+      <el-form-item label="名称" prop="ym_name">
+        <el-input v-model="dialogForm_Data.ym_name" clearable />
+      </el-form-item>
+      <el-form-item label="封面" prop="ym_img">
+        <file-upload v-model:part="dialogForm_Data.ym_img" />
+      </el-form-item>
+      <el-form-item label="简介" prop="ym_brief">
+        <el-input v-model="dialogForm_Data.ym_brief" clearable />
+      </el-form-item>
+      <el-form-item label="学校编号" prop="ym_sm_id">
+        <el-input v-model="dialogForm_Data.ym_sm_id" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称" prop="ym_sm_name">
+        <el-input v-model="dialogForm_Data.ym_sm_name" clearable />
+      </el-form-item>
+      <el-form-item label="年级编号" prop="grade_id">
+        <el-input v-model="dialogForm_Data.grade_id" clearable />
+      </el-form-item>
+      <el-form-item label="学科编号" prop="subject_id">
+        <el-input v-model="dialogForm_Data.subject_id" clearable />
+      </el-form-item>
+      <el-form-item label="年级名称" prop="grade_name">
+        <el-input v-model="dialogForm_Data.grade_name" clearable />
+      </el-form-item>
+      <el-form-item label="学科名称" prop="subject_name">
+        <el-input v-model="dialogForm_Data.subject_name" clearable />
+      </el-form-item>
+      <el-form-item label="班级编号" prop="ym_cm_id">
+        <el-input v-model="dialogForm_Data.ym_cm_id" clearable />
+      </el-form-item>
+      <el-form-item label="班级名称" prop="ym_cm_name">
+        <el-input v-model="dialogForm_Data.ym_cm_name" clearable />
+      </el-form-item>
+      <el-form-item label="学生数" prop="ym_student_num">
+        <el-input v-model="dialogForm_Data.ym_student_num" clearable />
+      </el-form-item>
+      <el-form-item label="课表JSON" prop="ym_timetable_json">
+        <el-input v-model="dialogForm_Data.ym_timetable_json" type="textarea" />
+      </el-form-item>
+      <el-form-item label="兼职教师" prop="ym_part_teacher">
+        <el-input v-model="dialogForm_Data.ym_part_teacher" clearable />
+      </el-form-item>
+      <el-form-item label="约课日期" prop="ym_date">
+        <el-input v-model="dialogForm_Data.ym_date" clearable />
+      </el-form-item>
+      <el-form-item label="周天" prop="ym_weekday">
+        <el-select v-model="dialogForm_Data.ym_weekday" clearable filterable>
+          <el-option label="星期一" value="1" />
+          <el-option label="星期二" value="2" />
+          <el-option label="星期三" value="3" />
+          <el-option label="星期四" value="4" />
+          <el-option label="星期五" value="5" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="课节次" prop="ym_lesson_no">
+        <el-select v-model="dialogForm_Data.ym_lesson_no" clearable filterable>
+          <el-option label="第一节(9:00~9:40)" value="1" />
+          <el-option label="第二节(9:50~10:30)" value="2" />
+          <el-option label="第三节(10:45~11:25)" value="3" />
+          <el-option label="第四节(13:40~14:20)" value="4" />
+          <el-option label="第五节(14:35~15:15)" value="5" />
+          <el-option label="第六节(15:25~16:05)" value="6" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="审核状态" prop="ym_status">
+        <el-radio-group v-model="dialogForm_Data.ym_status">
+          <el-radio label="1">待审核</el-radio>
+          <el-radio label="2">已审核</el-radio>
+          <el-radio label="3">不通过</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="分册" prop="team_id">
+        <el-radio-group v-model="dialogForm_Data.team_id">
+          <el-radio label="1">上册</el-radio>
+          <el-radio label="2">下册</el-radio>
+        </el-radio-group>
+      </el-form-item>
       <div class="flex justify-center">
         <el-button @click="handleDialogFormBtn_submit('dialogForm_Ref_addOrEdit')" type="primary">提交</el-button>
         <el-button @click="handleDialogFormBtn_cancel('dialogForm_Ref_addOrEdit')" type="default">取消</el-button>

+ 258 - 182
src/pages/shgl/shgl/yksq/ytg.vue

@@ -18,7 +18,7 @@ const router = useRouter()
 
 // #region (variable)
 const loading_table = ref(true)
-let whichDialogSubmit:'add'|'edit'
+let whichDialogSubmit: 'add' | 'edit'
 // #endregion
 
 // #region (type)
@@ -53,73 +53,73 @@ type TYPE_TABLE_FIELD = {
 const queryForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
 const handleQueryFormBtn_search = () => {
-      queryApi()
-    }
+  queryApi()
+}
 const handleQueryFormBtn_clear = () => {
-      queryForm_Data.value = {}
-    }
+  queryForm_Data.value = {}
+}
 // #endregion
 
 // #region (table selection)
 const multipleSelection = ref<TYPE_TABLE_FIELD[]>([])
-const handleSelectionChange = (val:TYPE_TABLE_FIELD[]) => {
+const handleSelectionChange = (val: TYPE_TABLE_FIELD[]) => {
   multipleSelection.value = val
 }
 // #endregion
 
 // #region (table row)
 const handleTableRowBtn_import = async ({ file }: { file: File }) => {
-      const res = await API_MAP['import']({ file })
-      if(res.code === '1'){
-        queryApi()
-        ElMessage.success(res.msg)
-      }
-    }
+  const res = await API_MAP['import']({ file })
+  if (res.code === '1') {
+    queryApi()
+    ElMessage.success(res.msg)
+  }
+}
 const handleTableRowBtn_export = () => {
-      exportApi()
-    }
+  exportApi()
+}
 const handleTableRowBtn_add = () => {
-      whichDialogSubmit = 'add'
-      dialogForm_Data.value = {}
-      dialogVisible_addOrEdit.value = true
-    }
+  whichDialogSubmit = 'add'
+  dialogForm_Data.value = {}
+  dialogVisible_addOrEdit.value = true
+}
 const handleTableRowBtn_delete = async () => {
-      await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD)=>item[TABLE_KEY]))
-      queryApi()
-    }
+  await deleteApi(multipleSelection.value.map((item: TYPE_TABLE_FIELD) => item[TABLE_KEY]))
+  queryApi()
+}
 // #endregion
 
 // #region (table body)
 const tableData = ref<TYPE_TABLE_FIELD[]>([])
-const DetailName = '-SHGL-YKSQ-YTG'
+const DetailName = '-SHGL-YKSQ-DSH'
 const DetailParam = 'aid'
 
-const handleTableColBtn_edit = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      const res = await detailApi(scope.row[TABLE_KEY])
-      dialogForm_Data.value = (res.data.one_info)
-      dialogVisible_addOrEdit.value = true
-    }
-const handleTableColBtn_audit = (scope:{row:TYPE_TABLE_FIELD}) => {
-      whichDialogSubmit = 'edit'
-      dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
-      dialogVisible_audit.value = true
-    }
-const handleTableColBtn_detail = (scope:{row:TYPE_TABLE_FIELD}) => {
-      router.push({ name:DetailName, params:{ [DetailParam]:scope.row[TABLE_KEY]} })
-    }
-const handleTableColBtn_delete = async (scope:{row:TYPE_TABLE_FIELD}) => {
-      await deleteApi(scope.row[TABLE_KEY])
-      queryApi()
-    }
+const handleTableColBtn_edit = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  const res = await detailApi(scope.row[TABLE_KEY])
+  dialogForm_Data.value = (res.data.one_info)
+  dialogVisible_addOrEdit.value = true
+}
+const handleTableColBtn_audit = (scope: { row: TYPE_TABLE_FIELD }) => {
+  whichDialogSubmit = 'edit'
+  dialogForm_Data.value = pick(scope.row, [`${TABLE_KEY}`, ...Object.keys(dialogForm_Rules_audit)])
+  dialogVisible_audit.value = true
+}
+const handleTableColBtn_detail = (scope: { row: TYPE_TABLE_FIELD }) => {
+  router.push({ name: DetailName, params: { [DetailParam]: scope.row[TABLE_KEY] } })
+}
+const handleTableColBtn_delete = async (scope: { row: TYPE_TABLE_FIELD }) => {
+  await deleteApi(scope.row[TABLE_KEY])
+  queryApi()
+}
 // #endregion
 
 // #region (pagination)
 const total = ref(0)
 const limit = ref(10)
 
-const currentPage=ref(1) 
-function handleCurrentChange(){
+const currentPage = ref(1)
+function handleCurrentChange() {
   queryApi()
 }
 // #endregion
@@ -127,94 +127,95 @@ function handleCurrentChange(){
 // #region (dialog base)
 const dialogForm_Data = ref<Partial<TYPE_TABLE_FIELD> & { keyword?: string }>({})
 
-const handleDialogFormBtn_submit = async (formRefKey:string,extendData?:Partial<TYPE_TABLE_FIELD>) => {
-      const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid:boolean) => valid)
-      if (isValid) {
-        await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({...dialogForm_Data.value,...extendData}))
-        handleDialogFormBtn_cancel()
-        queryApi()
-      }
-    }
-const handleDialogFormBtn_cancel = (formRefKey?:string) => {
-      dialogVisible_addOrEdit.value = false
-      dialogVisible_audit.value = false
-    }
+const handleDialogFormBtn_submit = async (formRefKey: string, extendData?: Partial<TYPE_TABLE_FIELD>) => {
+  const isValid = await (instance?.refs[formRefKey] as FormInstance).validate((valid: boolean) => valid)
+  if (isValid) {
+    await API_MAP[whichDialogSubmit](<TYPE_TABLE_FIELD>({ ...dialogForm_Data.value, ...extendData }))
+    handleDialogFormBtn_cancel()
+    queryApi()
+  }
+}
+const handleDialogFormBtn_cancel = (formRefKey?: string) => {
+  dialogVisible_addOrEdit.value = false
+  dialogVisible_audit.value = false
+}
 // #endregion
 
 // #region (dialog add/edit)
 const dialogVisible_addOrEdit = ref<boolean>(false)
 
-const dialogForm_Ref_addOrEdit= ref<FormInstance>()
-const dialogForm_Rules_addOrEdit = reactive({ 
-  'ym_name':{required : true,message:'名称不能为空',trigger:'submit'},
-  'ym_img':{required : true,message:'封面不能为空',trigger:'submit'},
-  'ym_brief':{required : true,message:'简介不能为空',trigger:'submit'},
-  'ym_sm_id':{required : true,message:'学校编号不能为空',trigger:'submit'},
-  'ym_sm_name':{required : true,message:'学校名称不能为空',trigger:'submit'},
-  'grade_id':{required : true,message:'年级编号不能为空',trigger:'submit'},
-  'subject_id':{required : true,message:'学科编号不能为空',trigger:'submit'},
-  'grade_name':{required : true,message:'年级名称不能为空',trigger:'submit'},
-  'subject_name':{required : true,message:'学科名称不能为空',trigger:'submit'},
-  'ym_cm_id':{required : true,message:'班级编号不能为空',trigger:'submit'},
-  'ym_cm_name':{required : true,message:'班级名称不能为空',trigger:'submit'},
-  'ym_student_num':{required : true,message:'学生数不能为空',trigger:'submit'},
-  'ym_timetable_json':{required : true,message:'课表JSON不能为空',trigger:'submit'},
-  'ym_part_teacher':{required : true,message:'兼职教师不能为空',trigger:'submit'},
-  'ym_date':{required : true,message:'约课日期不能为空',trigger:'submit'},
-  'ym_weekday':{required : true,message:'周天不能为空',trigger:'submit'},
-  'ym_lesson_no':{required : true,message:'课节次不能为空',trigger:'submit'},
-  'ym_status':{required : true,message:'审核状态不能为空',trigger:'submit'},
-  'team_id':{required : true,message:'分册不能为空',trigger:'submit'},
+const dialogForm_Ref_addOrEdit = ref<FormInstance>()
+const dialogForm_Rules_addOrEdit = reactive({
+  'ym_name': { required: true, message: '名称不能为空', trigger: 'submit' },
+  'ym_img': { required: true, message: '封面不能为空', trigger: 'submit' },
+  'ym_brief': { required: true, message: '简介不能为空', trigger: 'submit' },
+  'ym_sm_id': { required: true, message: '学校编号不能为空', trigger: 'submit' },
+  'ym_sm_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'grade_id': { required: true, message: '年级编号不能为空', trigger: 'submit' },
+  'subject_id': { required: true, message: '学科编号不能为空', trigger: 'submit' },
+  'grade_name': { required: true, message: '年级名称不能为空', trigger: 'submit' },
+  'subject_name': { required: true, message: '学科名称不能为空', trigger: 'submit' },
+  'ym_cm_id': { required: true, message: '班级编号不能为空', trigger: 'submit' },
+  'ym_cm_name': { required: true, message: '班级名称不能为空', trigger: 'submit' },
+  'ym_student_num': { required: true, message: '学生数不能为空', trigger: 'submit' },
+  'ym_timetable_json': { required: true, message: '课表JSON不能为空', trigger: 'submit' },
+  'ym_part_teacher': { required: true, message: '兼职教师不能为空', trigger: 'submit' },
+  'ym_date': { required: true, message: '约课日期不能为空', trigger: 'submit' },
+  'ym_weekday': { required: true, message: '周天不能为空', trigger: 'submit' },
+  'ym_lesson_no': { required: true, message: '课节次不能为空', trigger: 'submit' },
+  'ym_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
+  'team_id': { required: true, message: '分册不能为空', trigger: 'submit' },
 })
 // #endregion
 
 // #region (dialog audit)
 const dialogVisible_audit = ref<boolean>(false)
 
-const dialogForm_Field_audit= reactive<{
-  FLAG:keyof TYPE_TABLE_FIELD,
-  REASON?:keyof TYPE_TABLE_FIELD
+const dialogForm_Field_audit = reactive<{
+  FLAG: keyof TYPE_TABLE_FIELD,
+  REASON?: keyof TYPE_TABLE_FIELD
 }>({
-  FLAG:'ym_id',
+  FLAG: 'ym_status',
   // REASON:'ym_id'
 })
 
-const dialogForm_Ref_audit= ref<FormInstance>()
-const dialogForm_Rules_audit = reactive<FormRules>({ 
-  'ym_name':{required : true ,message:'名称不能为空',trigger:'submit'},
-  'ym_img':{required : true ,message:'封面不能为空',trigger:'submit'},
-  'ym_brief':{required : true ,message:'简介不能为空',trigger:'submit'},
-  'ym_sm_id':{required : true ,message:'学校编号不能为空',trigger:'submit'},
-  'ym_sm_name':{required : true ,message:'学校名称不能为空',trigger:'submit'},
-  'grade_id':{required : true ,message:'年级编号不能为空',trigger:'submit'},
-  'subject_id':{required : true ,message:'学科编号不能为空',trigger:'submit'},
-  'grade_name':{required : true ,message:'年级名称不能为空',trigger:'submit'},
-  'subject_name':{required : true ,message:'学科名称不能为空',trigger:'submit'},
-  'ym_cm_id':{required : true ,message:'班级编号不能为空',trigger:'submit'},
-  'ym_cm_name':{required : true ,message:'班级名称不能为空',trigger:'submit'},
-  'ym_student_num':{required : true ,message:'学生数不能为空',trigger:'submit'},
-  'ym_timetable_json':{required : true ,message:'课表JSON不能为空',trigger:'submit'},
-  'ym_part_teacher':{required : true ,message:'兼职教师不能为空',trigger:'submit'},
-  'ym_date':{required : true ,message:'约课日期不能为空',trigger:'submit'},
-  'ym_weekday':{required : true ,message:'周天不能为空',trigger:'submit'},
-  'ym_lesson_no':{required : true ,message:'课节次不能为空',trigger:'submit'},
-  'ym_status':{required : true ,message:'审核状态不能为空',trigger:'submit'},
-  'team_id':{required : true ,message:'分册不能为空',trigger:'submit'},
+const dialogForm_Ref_audit = ref<FormInstance>()
+const dialogForm_Rules_audit = reactive<FormRules>({
+  'ym_name': { required: true, message: '名称不能为空', trigger: 'submit' },
+  'ym_img': { required: true, message: '封面不能为空', trigger: 'submit' },
+  'ym_brief': { required: true, message: '简介不能为空', trigger: 'submit' },
+  'ym_sm_id': { required: true, message: '学校编号不能为空', trigger: 'submit' },
+  'ym_sm_name': { required: true, message: '学校名称不能为空', trigger: 'submit' },
+  'grade_id': { required: true, message: '年级编号不能为空', trigger: 'submit' },
+  'subject_id': { required: true, message: '学科编号不能为空', trigger: 'submit' },
+  'grade_name': { required: true, message: '年级名称不能为空', trigger: 'submit' },
+  'subject_name': { required: true, message: '学科名称不能为空', trigger: 'submit' },
+  'ym_cm_id': { required: true, message: '班级编号不能为空', trigger: 'submit' },
+  'ym_cm_name': { required: true, message: '班级名称不能为空', trigger: 'submit' },
+  'ym_student_num': { required: true, message: '学生数不能为空', trigger: 'submit' },
+  'ym_timetable_json': { required: true, message: '课表JSON不能为空', trigger: 'submit' },
+  'ym_part_teacher': { required: true, message: '兼职教师不能为空', trigger: 'submit' },
+  'ym_date': { required: true, message: '约课日期不能为空', trigger: 'submit' },
+  'ym_weekday': { required: true, message: '周天不能为空', trigger: 'submit' },
+  'ym_lesson_no': { required: true, message: '课节次不能为空', trigger: 'submit' },
+  'ym_status': { required: true, message: '审核状态不能为空', trigger: 'submit' },
+  'team_id': { required: true, message: '分册不能为空', trigger: 'submit' },
 })
 
 // #endregion
 
-// #region (request api): 
-function queryApi(){
+// #region (request api):
+function queryApi() {
   loading_table.value = true
   return request({
     url: URL_CUT + '/index',
     data: {
       ...queryForm_Data.value,
       limit: limit.value,
-      page: currentPage.value
+      page: currentPage.value,
+      ym_status: 2
     }
-  }).then((response:{data:{total_rows:string,page_data:TYPE_TABLE_FIELD[]}}) => {
+  }).then((response: { data: { total_rows: string, page_data: TYPE_TABLE_FIELD[] } }) => {
     const { data } = response
     total.value = parseInt(data.total_rows)
     tableData.value = data.page_data
@@ -224,44 +225,44 @@ function queryApi(){
   })
 }
 
-function addApi(data:TYPE_TABLE_FIELD){
+function addApi(data: TYPE_TABLE_FIELD) {
   return request({
     url: URL_CUT + '/add',
     data: {
-      [URL_SUBMIT_KEY]:data,
+      [URL_SUBMIT_KEY]: data,
     }
   })
 }
 
-function editApi(data:Partial<TYPE_TABLE_FIELD>){
+function editApi(data: Partial<TYPE_TABLE_FIELD>) {
   return request({
     url: URL_CUT + '/edit',
     data: {
-      [TABLE_KEY]:data[TABLE_KEY],
-      [URL_SUBMIT_KEY]:pick(data,['ym_name','ym_img','ym_brief','ym_sm_id','ym_sm_name','grade_id','subject_id','grade_name','subject_name','ym_cm_id','ym_cm_name','ym_student_num','ym_timetable_json','ym_part_teacher','ym_date','ym_weekday','ym_lesson_no','ym_status','team_id',]),
+      [TABLE_KEY]: data[TABLE_KEY],
+      [URL_SUBMIT_KEY]: pick(data, ['ym_name', 'ym_img', 'ym_brief', 'ym_sm_id', 'ym_sm_name', 'grade_id', 'subject_id', 'grade_name', 'subject_name', 'ym_cm_id', 'ym_cm_name', 'ym_student_num', 'ym_timetable_json', 'ym_part_teacher', 'ym_date', 'ym_weekday', 'ym_lesson_no', 'ym_status', 'team_id',]),
     }
   })
 }
 
-function deleteApi(id:string|string[]){
+function deleteApi(id: string | string[]) {
   return request({
     url: URL_CUT + '/delete',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function detailApi(id:string){
+function detailApi(id: string) {
   return request({
     url: URL_CUT + '/detail',
     data: {
-      [TABLE_KEY]:id,
+      [TABLE_KEY]: id,
     }
   })
 }
 
-function importApi(data:{file:File}){  
+function importApi(data: { file: File }) {
   return request({
     $type: 'import',
     url: URL_CUT + '/import',
@@ -269,23 +270,23 @@ function importApi(data:{file:File}){
   } as AxiosRequestConfig)
 }
 
-function exportApi(){
+function exportApi() {
   return download(URL_CUT + '/index', queryForm_Data.value)
 }
 
 const API_MAP = {
-  query:queryApi,
-  add:addApi,
-  edit:editApi,
-  delete:deleteApi,
-  detail:detailApi,
-  import:importApi,
-  export:exportApi,
+  query: queryApi,
+  add: addApi,
+  edit: editApi,
+  delete: deleteApi,
+  detail: detailApi,
+  import: importApi,
+  export: exportApi,
 }
 // #endregion
 
 // #region (page init)
-function init(){
+function init() {
   queryApi()
 }
 init()
@@ -297,25 +298,37 @@ init()
   <div class="card flex-grow flex flex-col">
     <el-form inline :model="queryForm_Data">
       <!-- <el-form-item label="关键字"><el-input v-model="queryForm_Data.keyword" ></el-input></el-form-item> -->
-      <el-form-item label="名称"><el-input v-model="queryForm_Data.ym_name" clearable /></el-form-item>
-      <el-form-item label="封面"><file-upload v-model:part="queryForm_Data.ym_img" /></el-form-item>
+      <el-form-item label="名称">
+        <el-input v-model="queryForm_Data.ym_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="封面"><file-upload v-model:part="queryForm_Data.ym_img" /></el-form-item>
       <el-form-item label="简介"><el-input v-model="queryForm_Data.ym_brief" clearable /></el-form-item>
-      <el-form-item label="学校编号"><el-input v-model="queryForm_Data.ym_sm_id" clearable /></el-form-item>
-      <el-form-item label="学校名称"><el-input v-model="queryForm_Data.ym_sm_name" clearable /></el-form-item>
-      <el-form-item label="年级编号"><el-input v-model="queryForm_Data.grade_id" clearable /></el-form-item>
-      <el-form-item label="学科编号"><el-input v-model="queryForm_Data.subject_id" clearable /></el-form-item>
-      <el-form-item label="年级名称"><el-input v-model="queryForm_Data.grade_name" clearable /></el-form-item>
-      <el-form-item label="学科名称"><el-input v-model="queryForm_Data.subject_name" clearable /></el-form-item>
-      <el-form-item label="班级编号"><el-input v-model="queryForm_Data.ym_cm_id" clearable /></el-form-item>
-      <el-form-item label="班级名称"><el-input v-model="queryForm_Data.ym_cm_name" clearable /></el-form-item>
-      <el-form-item label="学生数"><el-input v-model="queryForm_Data.ym_student_num" clearable /></el-form-item>
-      <el-form-item label="课表JSON"><el-input v-model="queryForm_Data.ym_timetable_json" type="textarea" /></el-form-item>
-      <el-form-item label="兼职教师"><el-input v-model="queryForm_Data.ym_part_teacher" clearable /></el-form-item>
-      <el-form-item label="约课日期"><el-input v-model="queryForm_Data.ym_date" clearable /></el-form-item>
-      <el-form-item label="周天"><el-select v-model="queryForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
-      <el-form-item label="课节次"><el-select v-model="queryForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item>
-      <el-form-item label="审核状态"><el-select v-model="queryForm_Data.ym_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="已审核" value="2" /><el-option label="不通过" value="3" /></el-select></el-form-item>
-      <el-form-item label="分册"><el-select v-model="queryForm_Data.team_id" clearable filterable ><el-option label="上册" value="1" /><el-option label="下册" value="2" /></el-select></el-form-item>
+      <el-form-item label="学校编号"><el-input v-model="queryForm_Data.ym_sm_id" clearable /></el-form-item> -->
+      <el-form-item label="学校名称">
+        <el-input v-model="queryForm_Data.ym_sm_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="年级编号"><el-input v-model="queryForm_Data.grade_id" clearable /></el-form-item> -->
+      <!-- <el-form-item label="学科编号"><el-input v-model="queryForm_Data.subject_id" clearable /></el-form-item> -->
+      <el-form-item label="年级名称">
+        <el-input v-model="queryForm_Data.grade_name" clearable />
+      </el-form-item>
+      <el-form-item label="学科名称">
+        <el-input v-model="queryForm_Data.subject_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="班级编号"><el-input v-model="queryForm_Data.ym_cm_id" clearable /></el-form-item> -->
+      <el-form-item label="班级名称">
+        <el-input v-model="queryForm_Data.ym_cm_name" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="学生数"><el-input v-model="queryForm_Data.ym_student_num" clearable /></el-form-item> -->
+      <!-- <el-form-item label="课表JSON"><el-input v-model="queryForm_Data.ym_timetable_json" type="textarea" /></el-form-item> -->
+      <!-- <el-form-item label="兼职教师"><el-input v-model="queryForm_Data.ym_part_teacher" clearable /></el-form-item> -->
+      <el-form-item label="约课日期">
+        <el-date-picker v-model="queryForm_Data.ym_date" type="date" value-format="YYYY-MM-DD" clearable />
+      </el-form-item>
+      <!-- <el-form-item label="周天"><el-select v-model="queryForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
+      <el-form-item label="课节次"><el-select v-model="queryForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item> -->
+      <!-- <el-form-item label="审核状态"><el-select v-model="queryForm_Data.ym_status" clearable filterable ><el-option label="待审核" value="1" /><el-option label="已审核" value="2" /><el-option label="不通过" value="3" /></el-select></el-form-item> -->
+      <!-- <el-form-item label="分册"><el-select v-model="queryForm_Data.team_id" clearable filterable ><el-option label="上册" value="1" /><el-option label="下册" value="2" /></el-select></el-form-item> -->
       <el-form-item>
         <el-button @click="handleQueryFormBtn_search" type="primary">搜索</el-button>
         <el-button @click="handleQueryFormBtn_clear" type="warning">清空</el-button>
@@ -323,10 +336,10 @@ init()
     </el-form>
     <div class="divider"></div>
     <div>
-        <import-button :url="URL_CUT_REF"></import-button>
-        <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
-        <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
-        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button>
+      <!-- <import-button :url="URL_CUT_REF"></import-button> -->
+      <el-button @click="handleTableRowBtn_export" type="success">导出</el-button>
+      <!-- <el-button @click="handleTableRowBtn_add" type="primary">新增</el-button>
+        <el-button @click="handleTableRowBtn_delete" type="danger">删除</el-button> -->
     </div>
 
     <div class="divider"></div>
@@ -335,32 +348,36 @@ init()
         element-loading-background="#ffffff70">
         <el-table-column type="selection"></el-table-column>
         <el-table-column prop="ym_name" label="名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_img" label="封面" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_brief" label="简介" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_sm_id" label="学校编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_img" label="封面" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_brief" label="简介" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_sm_id" label="学校编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_sm_name" label="学校名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="grade_id" label="年级编号" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="subject_id" label="学科编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="grade_id" label="年级编号" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="subject_id" label="学科编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="grade_name" label="年级名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="subject_name" label="学科名称" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_cm_id" label="班级编号" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_cm_id" label="班级编号" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_cm_name" label="班级名称" width="auto" show-overflow-tooltip></el-table-column>
         <el-table-column prop="ym_student_num" label="学生数" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_timetable_json" label="课表JSON" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_part_teacher" label="兼职教师" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_timetable_json" label="课表JSON" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_part_teacher" label="兼职教师" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_date" label="约课日期" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_weekday" label="周天" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ym_lesson_no" label="课节次" width="auto" show-overflow-tooltip></el-table-column>
+        <!-- <el-table-column prop="ym_weekday" label="周天" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column prop="ym_lesson_no" label="课节次" width="auto" show-overflow-tooltip></el-table-column> -->
         <el-table-column prop="ym_status" label="审核状态" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="team_id" label="分册" width="auto" show-overflow-tooltip></el-table-column>
-        <el-table-column label="操作" fixed="right">
+        <!-- <el-table-column prop="team_id" label="分册" width="auto" show-overflow-tooltip></el-table-column> -->
+        <!-- <el-table-column label="操作" fixed="right">
           <template #default="scope">
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary" >编辑</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary" >审核</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary" >详情</el-button>
-            <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary" >删除</el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_edit(scope)" type="primary">编辑
+            </el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_audit(scope)" type="primary">审核
+            </el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_detail(scope)" type="primary">详情
+            </el-button>
+            <el-button link :auto-insert-space="false" @click="handleTableColBtn_delete(scope)" type="primary">删除
+            </el-button>
           </template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
     </div>
 
@@ -371,26 +388,85 @@ init()
   </div>
 
   <el-dialog v-model="dialogVisible_addOrEdit" append-to-body destroy-on-close>
-    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit" label-width="120px">
-      <el-form-item label="名称" prop="ym_name"><el-input v-model="dialogForm_Data.ym_name" clearable /></el-form-item>
-      <el-form-item label="封面" prop="ym_img"><file-upload v-model:part="dialogForm_Data.ym_img" /></el-form-item>
-      <el-form-item label="简介" prop="ym_brief"><el-input v-model="dialogForm_Data.ym_brief" clearable /></el-form-item>
-      <el-form-item label="学校编号" prop="ym_sm_id"><el-input v-model="dialogForm_Data.ym_sm_id" clearable /></el-form-item>
-      <el-form-item label="学校名称" prop="ym_sm_name"><el-input v-model="dialogForm_Data.ym_sm_name" clearable /></el-form-item>
-      <el-form-item label="年级编号" prop="grade_id"><el-input v-model="dialogForm_Data.grade_id" clearable /></el-form-item>
-      <el-form-item label="学科编号" prop="subject_id"><el-input v-model="dialogForm_Data.subject_id" clearable /></el-form-item>
-      <el-form-item label="年级名称" prop="grade_name"><el-input v-model="dialogForm_Data.grade_name" clearable /></el-form-item>
-      <el-form-item label="学科名称" prop="subject_name"><el-input v-model="dialogForm_Data.subject_name" clearable /></el-form-item>
-      <el-form-item label="班级编号" prop="ym_cm_id"><el-input v-model="dialogForm_Data.ym_cm_id" clearable /></el-form-item>
-      <el-form-item label="班级名称" prop="ym_cm_name"><el-input v-model="dialogForm_Data.ym_cm_name" clearable /></el-form-item>
-      <el-form-item label="学生数" prop="ym_student_num"><el-input v-model="dialogForm_Data.ym_student_num" clearable /></el-form-item>
-      <el-form-item label="课表JSON" prop="ym_timetable_json"><el-input v-model="dialogForm_Data.ym_timetable_json" type="textarea" /></el-form-item>
-      <el-form-item label="兼职教师" prop="ym_part_teacher"><el-input v-model="dialogForm_Data.ym_part_teacher" clearable /></el-form-item>
-      <el-form-item label="约课日期" prop="ym_date"><el-input v-model="dialogForm_Data.ym_date" clearable /></el-form-item>
-      <el-form-item label="周天" prop="ym_weekday"><el-select v-model="dialogForm_Data.ym_weekday" clearable filterable ><el-option label="星期一" value="1" /><el-option label="星期二" value="2" /><el-option label="星期三" value="3" /><el-option label="星期四" value="4" /><el-option label="星期五" value="5" /></el-select></el-form-item>
-      <el-form-item label="课节次" prop="ym_lesson_no"><el-select v-model="dialogForm_Data.ym_lesson_no" clearable filterable ><el-option label="第一节(9:00~9:40)" value="1" /><el-option label="第二节(9:50~10:30)" value="2" /><el-option label="第三节(10:45~11:25)" value="3" /><el-option label="第四节(13:40~14:20)" value="4" /><el-option label="第五节(14:35~15:15)" value="5" /><el-option label="第六节(15:25~16:05)" value="6" /></el-select></el-form-item>
-      <el-form-item label="审核状态" prop="ym_status"><el-radio-group v-model="dialogForm_Data.ym_status"><el-radio label="1">待审核</el-radio><el-radio label="2">已审核</el-radio><el-radio label="3">不通过</el-radio></el-radio-group></el-form-item>
-      <el-form-item label="分册" prop="team_id"><el-radio-group v-model="dialogForm_Data.team_id"><el-radio label="1">上册</el-radio><el-radio label="2">下册</el-radio></el-radio-group></el-form-item>
+    <el-form :model="dialogForm_Data" ref="dialogForm_Ref_addOrEdit" :rules="dialogForm_Rules_addOrEdit"
+      label-width="120px">
+      <el-form-item label="名称" prop="ym_name">
+        <el-input v-model="dialogForm_Data.ym_name" clearable />
+      </el-form-item>
+      <el-form-item label="封面" prop="ym_img">
+        <file-upload v-model:part="dialogForm_Data.ym_img" />
+      </el-form-item>
+      <el-form-item label="简介" prop="ym_brief">
+        <el-input v-model="dialogForm_Data.ym_brief" clearable />
+      </el-form-item>
+      <el-form-item label="学校编号" prop="ym_sm_id">
+        <el-input v-model="dialogForm_Data.ym_sm_id" clearable />
+      </el-form-item>
+      <el-form-item label="学校名称" prop="ym_sm_name">
+        <el-input v-model="dialogForm_Data.ym_sm_name" clearable />
+      </el-form-item>
+      <el-form-item label="年级编号" prop="grade_id">
+        <el-input v-model="dialogForm_Data.grade_id" clearable />
+      </el-form-item>
+      <el-form-item label="学科编号" prop="subject_id">
+        <el-input v-model="dialogForm_Data.subject_id" clearable />
+      </el-form-item>
+      <el-form-item label="年级名称" prop="grade_name">
+        <el-input v-model="dialogForm_Data.grade_name" clearable />
+      </el-form-item>
+      <el-form-item label="学科名称" prop="subject_name">
+        <el-input v-model="dialogForm_Data.subject_name" clearable />
+      </el-form-item>
+      <el-form-item label="班级编号" prop="ym_cm_id">
+        <el-input v-model="dialogForm_Data.ym_cm_id" clearable />
+      </el-form-item>
+      <el-form-item label="班级名称" prop="ym_cm_name">
+        <el-input v-model="dialogForm_Data.ym_cm_name" clearable />
+      </el-form-item>
+      <el-form-item label="学生数" prop="ym_student_num">
+        <el-input v-model="dialogForm_Data.ym_student_num" clearable />
+      </el-form-item>
+      <el-form-item label="课表JSON" prop="ym_timetable_json">
+        <el-input v-model="dialogForm_Data.ym_timetable_json" type="textarea" />
+      </el-form-item>
+      <el-form-item label="兼职教师" prop="ym_part_teacher">
+        <el-input v-model="dialogForm_Data.ym_part_teacher" clearable />
+      </el-form-item>
+      <el-form-item label="约课日期" prop="ym_date">
+        <el-input v-model="dialogForm_Data.ym_date" clearable />
+      </el-form-item>
+      <el-form-item label="周天" prop="ym_weekday">
+        <el-select v-model="dialogForm_Data.ym_weekday" clearable filterable>
+          <el-option label="星期一" value="1" />
+          <el-option label="星期二" value="2" />
+          <el-option label="星期三" value="3" />
+          <el-option label="星期四" value="4" />
+          <el-option label="星期五" value="5" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="课节次" prop="ym_lesson_no">
+        <el-select v-model="dialogForm_Data.ym_lesson_no" clearable filterable>
+          <el-option label="第一节(9:00~9:40)" value="1" />
+          <el-option label="第二节(9:50~10:30)" value="2" />
+          <el-option label="第三节(10:45~11:25)" value="3" />
+          <el-option label="第四节(13:40~14:20)" value="4" />
+          <el-option label="第五节(14:35~15:15)" value="5" />
+          <el-option label="第六节(15:25~16:05)" value="6" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="审核状态" prop="ym_status">
+        <el-radio-group v-model="dialogForm_Data.ym_status">
+          <el-radio label="1">待审核</el-radio>
+          <el-radio label="2">已审核</el-radio>
+          <el-radio label="3">不通过</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="分册" prop="team_id">
+        <el-radio-group v-model="dialogForm_Data.team_id">
+          <el-radio label="1">上册</el-radio>
+          <el-radio label="2">下册</el-radio>
+        </el-radio-group>
+      </el-form-item>
       <div class="flex justify-center">
         <el-button @click="handleDialogFormBtn_submit('dialogForm_Ref_addOrEdit')" type="primary">提交</el-button>
         <el-button @click="handleDialogFormBtn_cancel('dialogForm_Ref_addOrEdit')" type="default">取消</el-button>

+ 0 - 127
校端教学-学生学业评价查询.json

@@ -1,127 +0,0 @@
-{
-  "legend": [
-    "2021学年"
-  ],
-  "xAxis": [
-    "第一次月考",
-    "第二次月考",
-    "期中考试",
-    "第三次月考",
-    "第四次月考",
-    "期末考试"
-  ],
-  "series": [
-    {
-      "data": [
-        {
-          "total": 400,
-          "title": "2021学年三年(2)班第一次月考各科平均成绩",
-          "indicator": [
-            "语文",
-            "数学",
-            "英语",
-            "物理",
-            "化学"
-          ],
-          "data": [
-            80,
-            80,
-            80,
-            80,
-            80
-          ]
-        },
-        {
-          "total": 400,
-          "title": "2021学年三年(2)班第二次月考各科平均成绩",
-          "indicator": [
-            "语文",
-            "数学",
-            "英语",
-            "物理",
-            "化学"
-          ],
-          "data": [
-            80,
-            80,
-            80,
-            80,
-            80
-          ]
-        },
-        {
-          "total": 400,
-          "title": "2021学年三年(2)班期中考试各科平均成绩",
-          "indicator": [
-            "语文",
-            "数学",
-            "英语",
-            "物理",
-            "化学"
-          ],
-          "data": [
-            80,
-            80,
-            80,
-            80,
-            80
-          ]
-        },
-        {
-          "total": 400,
-          "title": "2021学年三年(2)班第三次月考各科平均成绩",
-          "indicator": [
-            "语文",
-            "数学",
-            "英语",
-            "物理",
-            "化学"
-          ],
-          "data": [
-            80,
-            80,
-            80,
-            80,
-            80
-          ]
-        },
-        {
-          "total": 400,
-          "title": "2021学年三年(2)班第四次月考各科平均成绩",
-          "indicator": [
-            "语文",
-            "数学",
-            "英语",
-            "物理",
-            "化学"
-          ],
-          "data": [
-            80,
-            80,
-            80,
-            80,
-            80
-          ]
-        },
-        {
-          "total": 400,
-          "title": "2021学年三年(2)班期末考试各科平均成绩",
-          "indicator": [
-            "语文",
-            "数学",
-            "英语",
-            "物理",
-            "化学"
-          ],
-          "data": [
-            80,
-            80,
-            80,
-            80,
-            80
-          ]
-        }
-      ]
-    }
-  ]
-}