瀏覽代碼

Merge branch 'master' into zhuf

bzkf3 2 年之前
父節點
當前提交
b7500a923b

+ 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']
 }

+ 5 - 1
components.d.ts

@@ -7,10 +7,14 @@ declare module '@vue/runtime-core' {
   export interface GlobalComponents {
     AppLink: typeof import('./src/components/AppLink/index.vue')['default']
     ElButton: typeof import('element-plus/es')['ElButton']
+    ElCascader: typeof import('element-plus/es')['ElCascader']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
     ElDialog: typeof import('element-plus/es')['ElDialog']
+    ElDropdown: typeof import('element-plus/es')['ElDropdown']
+    ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
+    ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElIcon: typeof import('element-plus/es')['ElIcon']
@@ -58,4 +62,4 @@ declare module '@vue/runtime-core' {
   }
 }
 
-export { }
+export {}

二進制
public/images/header/icon-arrow.png


二進制
public/images/header/icon-message.png


二進制
public/images/header/icon-pwd.png


二進制
public/images/header/icon-user.png


二進制
public/images/header/login-bg.png


二進制
public/images/header/login-close.png


二進制
public/images/header/login-logo.png


二進制
public/images/header/logo.png


二進制
public/images/header/shot.png


+ 86 - 2
src/layout/app/components/AppHeader/index.vue

@@ -1,10 +1,94 @@
-<script setup lang="ts">
+<script setup>
 import {ref} from 'vue';
+import { user} from '~/store/user';
 const APP_TITLE = ref(document.title)
+function handleCommand(command) {
+  switch (command) {
+    case 'loginOut':
+      if (localStorage.getItem('userInfo')) {
+        localStorage.removeItem('userInfo');
+        window.open(window.GLOBAL_CONFIG.origin, '_self');
+        // loginShow = true;
+      }
+      break;
+    case 'home':
+      window.open(window.GLOBAL_CONFIG.origin, '_self');
+  }
+}
 </script>
 
 <template>
-  <div class="header w-full h-50px leading-50px line px-8 text-xl text-white tracking-wider">{{ APP_TITLE }}</div>
+  <div class="header w-full h-50px leading-50px line px-8 text-xl text-white tracking-wider">
+    <div>{{ APP_TITLE }}</div>
+    <div>
+      <span class="icon-message"></span>
+      <el-dropdown @command="handleCommand">
+        <div>
+          <div class="shot pr hand">
+            <img :src="user.user_avatar" alt="" :key="user?.user_avatar">
+            <span class="dot"></span>
+          </div>
+          <h3 class="shot-name">{{user.user_realname}}</h3>
+        </div>
+
+        <template #dropdown>
+          <el-dropdown-menu>
+            <el-dropdown-item command="home">首页</el-dropdown-item>
+            <el-dropdown-item command="loginOut">退出登录</el-dropdown-item>
+          </el-dropdown-menu>
+        </template>
+      </el-dropdown>
+
+    </div>
+  </div>
 </template>
+<style lang="scss">
+  .header{
+    display: flex;
+    justify-content: space-between;
+    .icon-message {
+      margin-right: 20px;
+      display: inline-block;
+      vertical-align: middle;
+      width: 16px;
+      height: 20px;
+      background: url("/images/header/icon-message.png") center no-repeat;
+    }
+  }
+  .shot {
+    margin-top: 1px;
+    position: relative;
+    cursor: pointer;
+    display: inline-block;
+    vertical-align: middle;
+    width: 40px;
+    height: 40px;
+    border-radius: 50%;
+    background: #fff;
+
+    img {
+      width: 100%;
+      border-radius: 50%;
+    }
 
+    .dot {
+      position: absolute;
+      right: 1px;
+      bottom: 1px;
+      width: 14px;
+      height: 14px;
+      border-radius: 50%;
+      background: #3EBB92;
+      border: 2px solid #F1FEF6;
+    }
+  }
+  .shot-name{
+    margin-left: 10px;
+    display: inline-block;
+    vertical-align: middle;
+    font-size: 14px;
+    color: #fff;
+    line-height: 50px;
+  }
+</style>
 

+ 6 - 6
src/pages/jcxx/jsxx/api.js

@@ -23,7 +23,7 @@ export const jsxx_add = (data = {}) =>
     url: '/user/main/add',
     data: {
       admin: "1",
-      site:'tyyx',
+      site: 'tyyx',
       user_main: {
         user_password: data.user_password,
         user_name: data.user_name,
@@ -120,9 +120,9 @@ export const class_list = () =>
 //民族 籍贯
 export const option_list = (data = {}) =>
   request({
-    url: "/common/district/search",
+    url: '/common/sjzd/option',
     data: {
-      upid: data.upid,
-      admin: "1",
-    },
-  });
+      cs_code: data.cs_code,
+      admin: '1'
+    }
+  })

+ 29 - 102
src/pages/jcxx/jsxx/index.vue

@@ -82,16 +82,17 @@
 
     <el-dialog :title="title" v-model="dialogFormVisible" width="778px">
       <el-form :inline="true" :model="dialogForm" label-width="100px" class="form-list">
-        <h4 style="font-size: 16px;font-family: PingFangSC, PingFangSC-Regular;color: #265cd4;margin:12px 42px">基本信息</h4>
-        <el-form-item label="姓名" prop="user_realname">
-          <el-input v-model="dialogForm.user_realname"></el-input>
-        </el-form-item>
-        <el-form-item label="昵称" prop="user_name">
+        <h4 style="font-size: 16px;font-family: PingFangSC, PingFangSC-Regular;color: #265cd4;margin:12px 42px">账号信息</h4>
+        <el-form-item label="账号" prop="user_name">
           <el-input v-model="dialogForm.user_name"></el-input>
         </el-form-item>
         <el-form-item label="密码" prop="user_password">
           <el-input v-model="dialogForm.user_password"></el-input>
         </el-form-item>
+        <h4 style="font-size: 16px;font-family: PingFangSC, PingFangSC-Regular;color: #265cd4;margin:12px 42px">基本信息</h4>
+        <el-form-item label="姓名" prop="user_realname">
+          <el-input v-model="dialogForm.user_realname"></el-input>
+        </el-form-item>
         <el-form-item label="职工编号" prop="ue_zgbh">
           <el-input v-model="dialogForm.ue_zgbh"></el-input>
         </el-form-item>
@@ -104,10 +105,9 @@
           <el-input v-model="dialogForm.user_cardno"></el-input>
         </el-form-item>
         <el-form-item label="籍贯" prop="ue_jg_name">
-          <el-cascader v-model="dialogForm.ue_jg_name" :props="props" @change="handleChange" />
-          <!-- <el-select placeholder="请选择籍贯" v-model="dialogForm.ue_jg_name" size="large" value-key="v">
+          <el-select placeholder="请选择籍贯" v-model="dialogForm.ue_jg_name" size="large" value-key="v">
             <el-option v-for="item in jgData" :key="item.v" :label="item.n" :value="item.v" />
-          </el-select> -->
+          </el-select>
         </el-form-item>
         <el-form-item label="出生日期" prop="user_birthday">
           <el-date-picker v-model="dialogForm.user_birthday" value-format="YYYY-MM-DD" type="date" placeholder="选择日期"> </el-date-picker>
@@ -219,66 +219,10 @@ export default {
         user_email: "",
 
       },
-      props: {
-        lazy: true,
-        emitPath: false,
-        checkStrictly: true,
-        // value: 'id',
-        // label: 'name',
-        lazyLoad(node, resolve) {
-          const { level } = node
-          if (level == 0) {
-            // this.loading = true;
-            let data = {
-              upid: 0,
-            };
-            option_list(data).then((res) => {
-              const nodes = Array.from(res.data.page_data).map(item => ({
-                value: `${item.id}`,
-                label: `${item.name}`,
-                // leaf: level >= 0
-              }));
-              // 通过调用resolve将子节点数据返回,通知组件数据加载完成
-              resolve(nodes);
-            });
-          }
-          else if (level == 1) {
-            console.log(node);
-            let data = {
-              upid: node.data.value
-            };
-            option_list(data).then((res) => {
-              const nodes = Array.from(res.data.page_data).map(item => ({
-                value: `${item.id}`,
-                label: `${item.name}`,
-                leaf: level >= 2
-              }));
-              resolve(nodes);
-            });
-          }
-          else {
-            let data = {
-              upid: node.data.value
-            };
-            option_list(data).then((res) => {
-              if (res.data.page_data && res.data.page_data.length > 0) {
-                const nodes = Array.from(res.data.page_data).map(item => ({
-                  value: `${item.id}`,
-                  label: `${item.name}`,
-                  leaf: level >= 2
-                }));
-                resolve(nodes);
-              }
-              else {
-                resolve([])
-              }
-            });
-          }
-        },
-      },
+
+
       loading: false,
       isEdit: false,
-
       activeGrade1: "",
       activeSubject: "",
       activeSchool: "",
@@ -442,8 +386,6 @@ export default {
       this.dialogForm.subject_name = item.subject_name;
       this.dialogForm.user_phone = item.user_phone;
       this.dialogForm.user_email = item.user_email;
-
-
     },
 
     formSubmit() {
@@ -477,7 +419,7 @@ export default {
         user_grade_num: this.activeGrade,
         sm_id: this.activeSchool,
         subject_id: this.activeSubject,
-        user_phone: this.dialogForm.user_phone,
+
         user_email: this.dialogForm.user_email,
         user_role_id: '75'
       };
@@ -500,24 +442,23 @@ export default {
           }
         });
       } else {
-        // console.log(data, 222222222222222);
-        // data.user_id = this.id;
-        // jsxx_edit(data).then((res) => {
-        //   if (res.code == 1) {
-        //     ElMessage({
-        //       message: "编辑成功",
-        //       type: "success",
-        //     });
+        data.user_id = this.id;
+        jsxx_edit(data).then((res) => {
+          if (res.code == 1) {
+            ElMessage({
+              message: "编辑成功",
+              type: "success",
+            });
 
-        //     this.dialogFormVisible = false;
-        //     this.getListData();
-        //   } else {
-        //     ElMessage({
-        //       message: res.msg,
-        //       type: "error",
-        //     });
-        //   }
-        // });
+            this.dialogFormVisible = false;
+            this.getListData();
+          } else {
+            ElMessage({
+              message: res.msg,
+              type: "error",
+            });
+          }
+        });
       }
     },
 
@@ -542,10 +483,8 @@ export default {
       };
       option_list(data).then((res) => {
         this.loading = false;
-        // this.jgData = res.data.option;
-        // console.log(res.data.option);
-        this.jgData = res.data.option
-        console.log(this.jgData);
+        this.jgData = res.data.option;
+        console.log(res.data.option);
       });
     },
     mzListData() {
@@ -579,18 +518,6 @@ export default {
 
       download("/user/main/index", obj);
     },
-
-    // import_success(res) {
-    //   if (res.code == 1) {
-    //     this.$message.success("导入成功");
-    //     this.getListData();
-    //   } else {
-    //     this.$message({
-    //       message: res.msg,
-    //       type: "error",
-    //     });
-    //   }
-
     //清空
     clearData() {
       this.user_realname = "";

+ 1 - 1
src/pages/jcxx/xsxx/api.js

@@ -134,6 +134,6 @@ export const province_list = (data = {}) =>
     url: '/common/district/search',
     data: {
       upid: data.upid,
-      name: data.name
+      admin: "1",
     },
   })

+ 94 - 12
src/pages/jcxx/xsxx/index.vue

@@ -91,7 +91,7 @@
     </footer>
 
     <el-dialog :title="title" v-model="dialogFormVisible" width="770px">
-      <el-form :inline="true" :model="dialogForm" label-width="100px" class="form-list">
+      <el-form ref="dialogFormRef" :rules="rules" :inline="true" :model="dialogForm" label-width="100px" class="form-list">
         <h4 style="font-size: 16px;font-family: PingFangSC, PingFangSC-Regular;color: #265cd4;margin:12px 42px">账号信息</h4>
         <el-form-item label="账号" prop="user_name">
           <el-input v-model="dialogForm.user_name"></el-input>
@@ -156,7 +156,7 @@
           <el-input v-model="dialogForm.user_phone"></el-input>
         </el-form-item>
         <el-form-item label="家庭住址" prop="ue_province_id">
-          <el-cascader v-model="value" :options="provinceData"></el-cascader>
+          <el-cascader v-model="dialogForm.ue_province_id" :props="props" @change="handleChange" />
         </el-form-item>
         <el-form-item label="详细地址" prop="address">
           <el-input v-model="dialogForm.address"></el-input>
@@ -170,7 +170,7 @@
       <template #footer>
         <div class="text-center">
           <el-button @click="formCancel">取 消</el-button>
-          <el-button type="primary" @click="formSubmit">确 定</el-button>
+          <el-button type="primary" @click="formSubmit(dialogFormRef)">确 定</el-button>
         </div>
       </template>
 
@@ -223,7 +223,7 @@ export default {
         address: "",
         about: "",
         gender: "",
-
+        user_phone: ""
       },
       gradeData: [],
       schoolData: [],
@@ -252,13 +252,85 @@ export default {
       {
         gender_id: "2",
         gender_name: "女"
-      }]
-      // // 导入导出
-      // import_type_url:
-      //   window.globalVariables.api +
-      //   "/xddy/dygl_xsxjk/import?issubmit=1&token=" +
-      //   token,
-      // import_type_data: {},
+      }],
+      jgid: "",
+      mzid: "",
+      props: {
+        lazy: true,
+        emitPath: false,
+        checkStrictly: true,
+        // value: 'id',
+        // label: 'name',
+        lazyLoad(node, resolve) {
+          const { level } = node
+          if (level == 0) {
+            // this.loading = true;
+            let data = {
+              upid: 0,
+            };
+            province_list(data).then((res) => {
+              const nodes = Array.from(res.data.page_data).map(item => ({
+                value: `${item.id}`,
+                label: `${item.name}`,
+                // leaf: level >= 0
+              }));
+              // 通过调用resolve将子节点数据返回,通知组件数据加载完成
+              resolve(nodes);
+            });
+          }
+          else if (level == 1) {
+            console.log(node);
+            let data = {
+              upid: node.data.value
+            };
+            province_list(data).then((res) => {
+              const nodes = Array.from(res.data.page_data).map(item => ({
+                value: `${item.id}`,
+                label: `${item.name}`,
+                leaf: level >= 2
+              }));
+              resolve(nodes);
+            });
+          }
+          else {
+            let data = {
+              upid: node.data.value
+            };
+            province_list(data).then((res) => {
+              if (res.data.page_data && res.data.page_data.length > 0) {
+                const nodes = Array.from(res.data.page_data).map(item => ({
+                  value: `${item.id}`,
+                  label: `${item.name}`,
+                  leaf: level >= 2
+                }));
+                resolve(nodes);
+              }
+              else {
+                resolve([])
+              }
+            });
+          }
+        },
+      },
+      rules: {
+        user_name: [{ required: true, message: "请输入账号", trigger: "blur" }],
+        user_password: [{ required: true, message: "请输入密码", trigger: "blur" }],
+        user_realname: [{ required: true, message: "请输入学生姓名", trigger: "blur" },
+        ],
+        student_no: [{ required: true, message: "请输入学生学号", trigger: "blur" }],
+        ue_zjlx: [{ required: true, message: "请选择证件类型", trigger: "blur" }],
+        user_cardno: [{ required: true, message: "请输入身份号码", trigger: "blur" }],
+        ue_jg_id: [{ required: true, message: "请选择籍贯", trigger: "blur" }],
+        user_birthday: [{ required: true, message: "请输入出生日期", trigger: "blur" }],
+        gender: [{ required: true, message: "请选择性别", trigger: "blur" }],
+        ue_xxmc: [{ required: true, message: "请选择学校", trigger: "blur" }],
+        ue_grade_name: [{ required: true, message: "请选择年级", trigger: "blur" }],
+        ue_class_name: [{ required: true, message: "请选择班级", trigger: "blur" }],
+        user_phone: [{ required: true, message: "请输入电话号码", trigger: "blur" }],
+        ue_province_id: [{ required: true, message: "请选择家庭住址", trigger: "blur" }],
+        address: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
+
+      },
     };
   },
   methods: {
@@ -399,6 +471,7 @@ export default {
         student_no: "",
         ue_zjlx: "",
         user_cardno: "",
+        user_phone: "",
         ue_jg_name: "",
         user_birthday: "",
         ue_mz_name: "",
@@ -411,6 +484,7 @@ export default {
         about: "",
         gender: "",
       };
+
       this.isEdit = false;
       this.dialogFormVisible = true;
     },
@@ -425,17 +499,23 @@ export default {
       this.dialogForm.student_no = item.student_no;
       this.dialogForm.ue_zjlx = item.ue_zjlx;
       this.dialogForm.user_cardno = item.user_cardno;
+      item.ue_jg_id = this.jgid;
       this.dialogForm.ue_jg_name = item.ue_jg_name;
       this.dialogForm.user_birthday = item.user_birthday;
+      item.ue_mz_id = this.mzid;
       this.dialogForm.ue_mz_name = item.ue_mz_name;
       this.dialogForm.address = item.address;
       this.dialogForm.about = item.about;
       this.dialogForm.gender = item.gender;
+      this.dialogForm.user_phone = item.user_phone;
       this.dialogForm.ue_province_id = item.ue_province_id;
       this.dialogForm.ue_city_id = item.ue_city_id;
       this.dialogForm.ue_grade_name = item.ue_grade_name;
       this.dialogForm.ue_class_name = item.ue_class_name;
-      this.dialogForm.ue_xxmc = item.ue_xxmc;
+      item.user_grade_num = this.activeGrade;
+      item.user_class_num = this.activeClass;
+      item.sm_id = this.activeSchool;
+
     },
 
     formSubmit() {
@@ -462,6 +542,7 @@ export default {
         ue_jg_name: this.dialogForm.ue_jg_name,
         ue_jg_id: jgid,
         user_birthday: this.dialogForm.user_birthday,
+        user_phone: this.dialogForm.user_phone,
         ue_mz_name: this.dialogForm.ue_mz_name,
         ue_mz_id: mzid,
         ue_province_id: this.dialogForm.ue_province_id,
@@ -472,6 +553,7 @@ export default {
         user_grade_num: this.activeGrade,
         user_class_num: this.activeClass,
         sm_id: this.activeSchool,
+        user_role_id: '76'
       };
       // console.log(data);
       if (!this.isEdit) {

+ 6 - 6
src/pages/jcxx/xxxx/xx/index.vue

@@ -41,7 +41,7 @@
         </div>
         <div class="flex">
           <el-form-item label="级别" prop="sm_period">
-            <el-select v-model="ruleForm.sm_period" placeholder=" " size="default">
+            <el-select v-model="ruleForm.sm_period" placeholder="" size="default">
               <el-option v-for="item in periodData" :key="item.v" :label="item.n" :value="item.v" />
             </el-select>
           </el-form-item>
@@ -50,13 +50,13 @@
           </el-form-item>
         </div>
         <el-form-item label="学校风采" prop="sm_brief">
-          <Tinymce v-if="tinymceShow" :modelValue="ruleForm.sm_brief" @update:modelValue="handleUpdate"></Tinymce>
+          <Tinymce :modelValue="ruleForm.sm_brief"></Tinymce>
         </el-form-item>
       </el-form>
       <template #footer>
         <div class="text-center">
           <el-button @click="formCancel">取 消</el-button>
-          <el-button type="primary" @click="formSubmit(ruleFormRef)">确 定</el-button>
+          <el-button type="primary" @click="formSubmit('ruleFormRef')">确 定</el-button>
         </div>
       </template>
 
@@ -117,7 +117,7 @@ export default {
         this.tableData = res.data;
         console.log(this.tableData.user_id);
         console.log(this.tableData.sm_id);
-        this.editData();
+
       });
     },
     editData() {
@@ -136,7 +136,7 @@ export default {
       });
     },
     submitForm(formName) {
-      let id = this.tableData.sm_id;
+      // let id = this.tableData.sm_id;
       this.$refs[formName].validate((valid) => {
         if (valid) {
           let data = {
@@ -168,7 +168,7 @@ export default {
       });
     },
     formCancel() {
-      this.dialogFormVisible = true;
+      this.dialogFormVisible = false;
     },
 
   },

+ 0 - 0
src/pages/kcgl/kczy/index.vue


+ 0 - 0
src/pages/kcgl/tbjy/index.vue


+ 49 - 60
src/pages/kcgl/wlzb/index.vue

@@ -22,6 +22,7 @@
           <el-form-item prop="" label="年级:">
             <el-select
               v-model="searchData.grade"
+              clearable
               size="large"
               placeholder="年级"
               @clear="getListData"
@@ -37,6 +38,7 @@
           </el-form-item>
           <el-form-item prop="" label="学科:">
             <el-select
+              clearable
               v-model="searchData.subject"
               size="large"
               placeholder="学科"
@@ -54,6 +56,7 @@
           <el-form-item prop="" label="时间">
             <el-date-picker
               v-model="searchData.time"
+              clearable
               type="datetime"
               placeholder=""
             />
@@ -61,6 +64,7 @@
           <el-form-item prop="" label="学校:">
             <el-select
               v-model="searchData.school"
+              clearable
               size="large"
               placeholder="学校"
               @clear="getListData"
@@ -80,28 +84,13 @@
           <el-button type="warning" @click="clearData">清空</el-button>
         </el-form>
         <div class="flex justify-between items-center border-bottom">
-          <el-upload
-            class="upload-demo"
-            :action="import_type_url"
-            :show-file-list="false"
-            :data="import_type_data"
-            :on-success="import_success"
-            style="display: inline-block; margin: 0 10px"
-          >
-            <el-button type="success">导出</el-button>
-          </el-upload>
+          <el-button @click="exportData" type="success">导出</el-button>
           <div class="print flex items-center">
             <img
               class="w-20px h-20px cursor-pointer"
               src="/images/print.png"
               alt=""
             />
-            <el-input
-              v-model="input2"
-              class="w-50 m-2"
-              placeholder="输入关键字搜索"
-            />
-            <el-button type="primary">搜索</el-button>
           </div>
         </div>
         <el-table
@@ -246,17 +235,15 @@
           >
           <el-button type="warning" @click="clearData">清空</el-button>
         </el-form>
-        <div>
-          <el-upload
-            class="upload-demo"
-            :action="import_type_url"
-            :show-file-list="false"
-            :data="import_type_data"
-            :on-success="import_success"
-            style="display: inline-block; margin: 0 10px"
-          >
-            <el-button type="success">导出</el-button>
-          </el-upload>
+        <div class="flex justify-between items-center border-bottom">
+          <el-button @click="exportData" type="success">导出</el-button>
+          <div class="print flex items-center">
+            <img
+              class="w-20px h-20px cursor-pointer"
+              src="/images/print.png"
+              alt=""
+            />
+          </div>
         </div>
         <el-table
           :data="tableData"
@@ -301,9 +288,7 @@
           </el-table-column>
           <el-table-column label="状态" width="100" align="center">
             <template #default="scope">
-              <el-button type="success"
-                >已通过
-              </el-button>
+              <el-button type="success">已通过 </el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -400,18 +385,16 @@
           >
           <el-button type="warning" @click="clearData">清空</el-button>
         </el-form>
-        <!-- <div>
-          <el-upload
-            class="upload-demo"
-            :action="import_type_url"
-            :show-file-list="false"
-            :data="import_type_data"
-            :on-success="import_success"
-            style="display: inline-block; margin: 0 10px"
-          >
-            <el-button type="success">导出</el-button>
-          </el-upload>
-        </div> -->
+        <div class="flex justify-between items-center border-bottom">
+          <el-button @click="exportData" type="success">导出</el-button>
+          <div class="print flex items-center">
+            <img
+              class="w-20px h-20px cursor-pointer"
+              src="/images/print.png"
+              alt=""
+            />
+          </div>
+        </div>
         <el-table
           :data="tableData"
           tooltip-effect="dark"
@@ -455,9 +438,7 @@
           </el-table-column>
           <el-table-column label="状态" width="100" align="center">
             <template #default="scope">
-              <el-button type="danger"
-                >未通过
-              </el-button>
+              <el-button type="danger">未通过 </el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -669,9 +650,7 @@ import {
   wlzb_detail,
   wlzb_edit,
 } from "./api";
-import { del } from "vue-demi";
-import { from } from "rxjs";
-import {user} from "@/store/user"
+import { user } from "@/store/user";
 let shstatus = $ref("1");
 const activeName = ref("first");
 let form = $ref({
@@ -705,7 +684,7 @@ const rules = {
   kz_kcjj: [{ required: true, message: "请输入课程简介", trigger: "submit" }],
   kz_kss: [{ required: true, message: "请输入课时数", trigger: "submit" }],
 };
-const searchData = ref({
+const searchData = $ref({
   keyword: "",
   teacher: "",
   grade: "",
@@ -745,7 +724,7 @@ let passTable = ref([]);
 let zbdata = {
   admin: 1,
   site: "tyyx",
-  // shenhe_status: "1",
+  shenhe_status: "0",
 };
 // 初始化
 function getZbData() {
@@ -764,7 +743,7 @@ getZbData();
 // 切换tab
 const handleClick = (tab, event) => {
   if (event.target.id === "tab-first") {
-    zbdata.shenhe_status = "1";
+    zbdata.shenhe_status = "0";
   } else if (event.target.id === "tab-second") {
     zbdata.shenhe_status = "2";
   } else {
@@ -785,7 +764,17 @@ function searchList() {
   });
   getZbData();
 }
-
+// 清空搜索
+function clearData() {
+  searchData = {
+    keyword: "",
+    teacher: "",
+    grade: "",
+    subject: "",
+    time: "",
+    school: "",
+  };
+}
 // 审核
 let popLoading = $ref(false);
 let dialogFormVisible = $ref(false);
@@ -815,12 +804,12 @@ function handleBack() {
 }
 function handlePass() {
   let data = {
-    admin: '1',
-    site: 'tyyx',
-    issubmit:'1',
+    admin: "1",
+    site: "tyyx",
+    issubmit: "1",
     kz_id,
     kzkt_zbkc: {
-      shenhe_status:"2",
+      shenhe_status: "2",
     },
   };
   wlzb_edit(data).then((res) => {
@@ -829,12 +818,12 @@ function handlePass() {
 }
 function handleUnPass() {
   let data = {
-    admin: '1',
-    site: 'tyyx',
-    issubmit:'1',
+    admin: "1",
+    site: "tyyx",
+    issubmit: "1",
     kz_id,
     kzkt_zbkc: {
-      shenhe_status:"3",
+      shenhe_status: "3",
     },
   };
   wlzb_edit(data).then((res) => {

+ 0 - 0
src/pages/kcgl/xtbk/index.vue


+ 27 - 11
src/pages/kcgl/ztzb/api.js

@@ -8,7 +8,7 @@ export const subject_list = () =>
 // 年级 jcxx_grade 列表接口
 export const grade_list = () =>
   request({
-      url: "/jcxx/grade/index",
+    url: "/jcxx/grade/index",
   });
 // 学校列表接口
 export const school_list = () =>
@@ -23,16 +23,32 @@ export const class_list = () =>
 
 // 教师用户列表
 export const teacher_list = (data = {}) => {
-   return request({
-        url: "/user/main/index",
-        data,
-    });
-}
+  return request({
+    url: "/user/main/index",
+    data,
+  });
+};
 
 // 直播课程列表
 export const wlzb_list = (data = {}) => {
-   return request({
-        url: "/kzkt/zbkc/index",
-        data,
-    });
-}
+  return request({
+    url: "/kzkt/zbkc/index",
+    data,
+  });
+};
+
+// 直播课程列表修改
+export const wlzb_edit = (data = {}) => {
+  return request({
+    url: "/kzkt/zbkc/edit",
+    data,
+  });
+};
+
+// 直播课程列表详情
+export const wlzb_detail = (data = {}) => {
+  return request({
+    url: "/kzkt/zbkc/detail",
+    data,
+  });
+};

+ 120 - 103
src/pages/kcgl/ztzb/index.vue

@@ -22,6 +22,7 @@
           <el-form-item prop="" label="年级:">
             <el-select
               v-model="searchData.grade"
+              clearable
               size="large"
               placeholder="年级"
               @clear="getListData"
@@ -37,6 +38,7 @@
           </el-form-item>
           <el-form-item prop="" label="学科:">
             <el-select
+              clearable
               v-model="searchData.subject"
               size="large"
               placeholder="学科"
@@ -54,6 +56,7 @@
           <el-form-item prop="" label="时间">
             <el-date-picker
               v-model="searchData.time"
+              clearable
               type="datetime"
               placeholder=""
             />
@@ -61,6 +64,7 @@
           <el-form-item prop="" label="学校:">
             <el-select
               v-model="searchData.school"
+              clearable
               size="large"
               placeholder="学校"
               @clear="getListData"
@@ -80,28 +84,13 @@
           <el-button type="warning" @click="clearData">清空</el-button>
         </el-form>
         <div class="flex justify-between items-center border-bottom">
-          <el-upload
-            class="upload-demo"
-            :action="import_type_url"
-            :show-file-list="false"
-            :data="import_type_data"
-            :on-success="import_success"
-            style="display: inline-block; margin: 0 10px"
-          >
-            <el-button type="success">导出</el-button>
-          </el-upload>
+          <el-button @click="exportData" type="success">导出</el-button>
           <div class="print flex items-center">
             <img
               class="w-20px h-20px cursor-pointer"
               src="/images/print.png"
               alt=""
             />
-            <el-input
-              v-model="input2"
-              class="w-50 m-2"
-              placeholder="输入关键字搜索"
-            />
-            <el-button type="primary">搜索</el-button>
           </div>
         </div>
         <el-table
@@ -246,17 +235,15 @@
           >
           <el-button type="warning" @click="clearData">清空</el-button>
         </el-form>
-        <div>
-          <el-upload
-            class="upload-demo"
-            :action="import_type_url"
-            :show-file-list="false"
-            :data="import_type_data"
-            :on-success="import_success"
-            style="display: inline-block; margin: 0 10px"
-          >
-            <el-button type="success">导出</el-button>
-          </el-upload>
+        <div class="flex justify-between items-center border-bottom">
+          <el-button @click="exportData" type="success">导出</el-button>
+          <div class="print flex items-center">
+            <img
+              class="w-20px h-20px cursor-pointer"
+              src="/images/print.png"
+              alt=""
+            />
+          </div>
         </div>
         <el-table
           :data="tableData"
@@ -269,41 +256,39 @@
         >
           <el-table-column type="selection" align="center" width="55">
           </el-table-column>
-          <el-table-column label="学校" prop="sm_name" width="auto">
+          <el-table-column label="学校" prop="school_name" width="auto">
           </el-table-column>
           <el-table-column
             label="课程名称"
-            prop="kz_title"
+            prop="name"
             width="200"
             class="color_blue"
           ></el-table-column>
           <el-table-column
             label="年级"
             prop="grade_name"
-            width="90"
+            width="110"
           ></el-table-column>
           <el-table-column
             label="学科"
             prop="subject_name"
-            width="90"
+            width="110"
           ></el-table-column>
           <el-table-column
             label="课时数"
-            prop="kz_kss"
-            width="90"
+            prop="kss"
+            width="110"
           ></el-table-column>
           <el-table-column
             label="主讲老师"
-            prop="kz_master_teacher"
-            width="100"
+            prop="master_teacher"
+            width="110"
           ></el-table-column>
           <el-table-column label="时间" prop="time" width="200">
           </el-table-column>
           <el-table-column label="状态" width="100" align="center">
             <template #default="scope">
-              <el-button type="success" @click="editData(scope.row)"
-                >已通过
-              </el-button>
+              <el-button type="success">已通过 </el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -400,18 +385,16 @@
           >
           <el-button type="warning" @click="clearData">清空</el-button>
         </el-form>
-        <!-- <div>
-          <el-upload
-            class="upload-demo"
-            :action="import_type_url"
-            :show-file-list="false"
-            :data="import_type_data"
-            :on-success="import_success"
-            style="display: inline-block; margin: 0 10px"
-          >
-            <el-button type="success">导出</el-button>
-          </el-upload>
-        </div> -->
+        <div class="flex justify-between items-center border-bottom">
+          <el-button @click="exportData" type="success">导出</el-button>
+          <div class="print flex items-center">
+            <img
+              class="w-20px h-20px cursor-pointer"
+              src="/images/print.png"
+              alt=""
+            />
+          </div>
+        </div>
         <el-table
           :data="tableData"
           tooltip-effect="dark"
@@ -423,41 +406,39 @@
         >
           <el-table-column type="selection" align="center" width="55">
           </el-table-column>
-          <el-table-column label="学校" prop="sm_name" width="auto">
+          <el-table-column label="学校" prop="school_name" width="auto">
           </el-table-column>
           <el-table-column
             label="课程名称"
-            prop="kz_title"
+            prop="name"
             width="200"
             class="color_blue"
           ></el-table-column>
           <el-table-column
             label="年级"
             prop="grade_name"
-            width="90"
+            width="110"
           ></el-table-column>
           <el-table-column
             label="学科"
             prop="subject_name"
-            width="90"
+            width="110"
           ></el-table-column>
           <el-table-column
             label="课时数"
-            prop="kz_kss"
-            width="90"
+            prop="kss"
+            width="110"
           ></el-table-column>
           <el-table-column
             label="主讲老师"
-            prop="kz_master_teacher"
-            width="100"
+            prop="master_teacher"
+            width="110"
           ></el-table-column>
           <el-table-column label="时间" prop="time" width="200">
           </el-table-column>
           <el-table-column label="状态" width="100" align="center">
             <template #default="scope">
-              <el-button type="danger" @click="editData(scope.row)"
-                >未通过
-              </el-button>
+              <el-button type="danger">未通过 </el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -490,11 +471,11 @@
         label-width="140px"
         ref="formRef"
         :rules="rules"
-        size="small"
-        v-if="!loading"
+        v-if="!popLoading"
       >
         <el-form-item label="课程封面图" prop="kz_img">
-          <file-upload-progress v-model:part="form.kz_img" :limit="1" list-type="picture-card" accept=".jpg,.png,.jpeg"
+          <img class="w-140px" :src="form.kz_img" alt="" />
+          <!-- <file-upload-progress v-model:part="form.kz_img" :limit="1" list-type="picture-card" accept=".jpg,.png,.jpeg"
             :size-limit="200">
             <template #default>
               <i-akar-icons:plus class="text-4xl" />
@@ -502,7 +483,7 @@
             <template #tip>
               <div class="mt-2">支持格式:jpg,png,jpeg(200kb以内) 建议尺寸600x320</div>
             </template>
-          </file-upload-progress>
+          </file-upload-progress> -->
         </el-form-item>
 
         <el-form-item label="主讲账号" prop="kz_master_user_name">
@@ -522,24 +503,13 @@
         </el-form-item>
         <div class="flex justify-between">
           <el-form-item label="年级" prop="grade_id">
-            <el-select v-model="form.grade_id">
-              <el-option
-                v-for="grade in gradeData"
-                :key="grade.grade_id"
-                :label="grade.grade_name"
-                :value="grade.grade_id"
-              />
-            </el-select>
+            <remote-select v-model="form.grade_id" to="grade"></remote-select>
           </el-form-item>
           <el-form-item label="学科" prop="subject_id">
-            <el-select v-model="form.subject_id">
-              <el-option
-                v-for="s in subjectData"
-                :key="s.subject_id"
-                :label="s.subject_name"
-                :value="s.subject_id"
-              />
-            </el-select>
+            <remote-select
+              v-model="form.subject_id"
+              to="subject"
+            ></remote-select>
           </el-form-item>
         </div>
 
@@ -556,18 +526,18 @@
             value-format="YYYY-MM-DD HH:mm:ss"
           />
         </el-form-item>
-          <el-form-item label="是否手机端推荐课程" prop="kz_recommend">
-            <el-radio-group v-model="form.kz_recommend">
-              <el-radio label="1">推荐</el-radio>
-              <el-radio label="0">不推荐</el-radio>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item label="是否精品" prop="kz_best">
-            <el-radio-group v-model="form.kz_best">
-              <el-radio label="1">是</el-radio>
-              <el-radio label="0">否</el-radio>
-            </el-radio-group>
-          </el-form-item>
+        <el-form-item label="是否手机端推荐课程" prop="kz_recommend">
+          <el-radio-group v-model="form.kz_recommend">
+            <el-radio label="1">推荐</el-radio>
+            <el-radio label="0">不推荐</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="是否精品" prop="kz_best">
+          <el-radio-group v-model="form.kz_best">
+            <el-radio label="1">是</el-radio>
+            <el-radio label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
 
         <el-form-item label="是否需要审核" prop="is_shenhe">
           <el-radio-group v-model="form.is_shenhe">
@@ -616,8 +586,7 @@
           size="large"
         /> -->
 
-        <div class="flex justify-around items-center text-sm mt-10">
-          
+        <div class="flex justify-center items-center text-sm mt-10">
           <div
             class="
               w-80px
@@ -627,6 +596,7 @@
               bg-hex-F4F4F4
               text-hex-41387F
               cursor-pointer
+              m-5
             "
             @click="handleBack"
           >
@@ -641,8 +611,9 @@
               bg-hex-00A3FF
               text-white
               cursor-pointer
+              m-5
             "
-            @click="handleSubmit"
+            @click="handlePass"
           >
             通过
           </div>
@@ -652,11 +623,12 @@
               h-40px
               flex_center
               rounded
-              bg-hex-00A3FF
-              text-white
+              bg-hex-F4F4F4
+              text-hex-41387F
               cursor-pointer
+              m-5
             "
-            @click="handleSubmit"
+            @click="handleUnPass"
           >
             不通过
           </div>
@@ -675,9 +647,10 @@ import {
   school_list,
   teacher_list,
   wlzb_list,
-  // wlzb_detail,
-  // wlzb_edit,
+  wlzb_detail,
+  wlzb_edit,
 } from "./api";
+import { user } from "@/store/user";
 let shstatus = $ref("1");
 const activeName = ref("first");
 let form = $ref({
@@ -711,7 +684,7 @@ const rules = {
   kz_kcjj: [{ required: true, message: "请输入课程简介", trigger: "submit" }],
   kz_kss: [{ required: true, message: "请输入课时数", trigger: "submit" }],
 };
-const searchData = ref({
+const searchData = $ref({
   keyword: "",
   teacher: "",
   grade: "",
@@ -791,11 +764,23 @@ function searchList() {
   });
   getZbData();
 }
-
+// 清空搜索
+function clearData() {
+  searchData = {
+    keyword: "",
+    teacher: "",
+    grade: "",
+    subject: "",
+    time: "",
+    school: "",
+  };
+}
 // 审核
 let popLoading = $ref(false);
 let dialogFormVisible = $ref(false);
+let kz_id = "";
 function auditData(item) {
+  kz_id = item.id;
   dialogFormVisible = true;
   popLoading = true;
   let data = {
@@ -813,6 +798,38 @@ function auditData(item) {
     }
   });
 }
+
+function handleBack() {
+  dialogFormVisible = false;
+}
+function handlePass() {
+  let data = {
+    admin: "1",
+    site: "tyyx",
+    issubmit: "1",
+    kz_id,
+    kzkt_zbkc: {
+      shenhe_status: "2",
+    },
+  };
+  wlzb_edit(data).then((res) => {
+    handleBack();
+  });
+}
+function handleUnPass() {
+  let data = {
+    admin: "1",
+    site: "tyyx",
+    issubmit: "1",
+    kz_id,
+    kzkt_zbkc: {
+      shenhe_status: "3",
+    },
+  };
+  wlzb_edit(data).then((res) => {
+    handleBack();
+  });
+}
 </script>
 
 <style lang="scss" scoped>

+ 0 - 0
src/pages/kcgl/zxxx/index.vue


+ 13 - 13
src/router/routes/jcxx.ts

@@ -112,19 +112,19 @@ export default <RouteRecordDetailRaw[]>[
             "component": () => import('~/pages/jcxx/xxxx/index.vue'),
             "redirect": null
           },
-          // {
-          //     "path": "",
-          //     "name": "jcxx_xxxx_xx",
-          //     "props": true,
-          //     "meta": {
-          //         "hidden": false,
-          //         "breadcrumb": false,
-          //         "sort": 0,
-          //         "title": "学校信息(学校)"
-          //     },
-          //     "component": () => import('~/pages/jcxx/xxxx/xx/index.vue'),
-          //     "redirect": null
-          // }
+          {
+            "path": "",
+            "name": "jcxx_xxxx_xx",
+            "props": true,
+            "meta": {
+              "hidden": false,
+              "breadcrumb": false,
+              "sort": 0,
+              "title": "学校信息(学校)"
+            },
+            "component": () => import('~/pages/jcxx/xxxx/xx/index.vue'),
+            "redirect": null
+          }
         ],
         "redirect": {
           "name": "jcxx_xxxx_jd"

File diff suppressed because it is too large
+ 2 - 1
src/store/user.ts