Explorar o código

添加报道审核

asd123a20 %!s(int64=2) %!d(string=hai) anos
pai
achega
bcbde4d55f
Modificáronse 3 ficheiros con 153 adicións e 53 borrados
  1. 76 26
      src/views/community/dangyuan/index.vue
  2. 75 26
      src/views/community/xiachenganbu/index.vue
  3. 2 1
      vue.config.js

+ 76 - 26
src/views/community/dangyuan/index.vue

@@ -28,11 +28,21 @@
       <el-form-item label="报到位置" prop="reportLocation">
         <el-input
           v-model="queryParams.reportLocation"
-          placeholder="请输入工作单位"
+          placeholder="请输入报到位置"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="审核状态" prop="status">
+        <el-select v-model="queryParams.status" clearable placeholder="请选择">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -41,28 +51,19 @@
 
     <el-table v-loading="loading" :data="dangyuanList">
       <el-table-column label="姓名" align="center" prop="name" />
-      <el-table-column label="性别" align="center" prop="sex" />
+      <el-table-column label="性别" align="center" prop="sexName" />
+      <el-table-column label="状态" align="center" prop="statusName" />
       <el-table-column label="工作单位" align="center" prop="workUnit" />
       <el-table-column label="报到位置" align="center" prop="reportLocation" />
-      <el-table-column label="报到类别" align="center" prop="reportType" />
+      <el-table-column label="报到类别" align="center" prop="reportTypeName" />
       <el-table-column label="居住地" align="center" prop="residence" />
       <el-table-column label="联系方式" align="center" prop="phone" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['community:dangyuan:edit']"
-          >详情</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['community:dangyuan:remove']"
-          >删除</el-button>
+          <el-button v-if="scope.row.status == 0" size="mini" type="text" icon="el-icon-check" @click="handleUpdate(scope.row)">审核</el-button>
+          <el-button v-if="scope.row.status == 0" size="mini" type="text" icon="el-icon-close" @click="handleUpdate(scope.row)">驳回</el-button>
+          <el-button v-if="scope.row.status !== 0" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['community:dangyuan:edit']">详情</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['community:dangyuan:remove']">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -77,7 +78,8 @@
 
     <!-- 添加或修改党员报到对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-input v-if="dialogType == 'textarea'" type="textarea" :rows="2" placeholder="请输入驳回原因" v-model="textarea"></el-input>
+      <el-form ref="form" v-else :model="form" :rules="rules" label-width="80px">
         <el-form-item label="姓名" prop="name">
           <el-input disabled v-model="form.name" placeholder="请输入姓名" />
         </el-form-item>
@@ -90,8 +92,8 @@
         <el-form-item label="报到位置" prop="reportLocation">
           <el-input disabled v-model="form.reportLocation" placeholder="请输入报到位置" />
         </el-form-item>
-        <el-form-item label="报到类别" prop="reportType">
-          <el-input disabled v-model="form.reportType" placeholder="请输入报到位置" />
+        <el-form-item label="报到类别" prop="reportTypeName">
+          <el-input disabled v-model="form.reportTypeName" placeholder="请输入报到位置" />
         </el-form-item>
         <el-form-item label="居住地" prop="residence">
           <el-input disabled v-model="form.residence" placeholder="请输入居住地" />
@@ -102,16 +104,22 @@
         <el-form-item label="服务内容">
           <el-input disabled type="textarea" v-model="form.content"></el-input>
         </el-form-item>
-        <el-form-item label="影像资料" prop="videoPath">
+        <!-- <el-form-item label="影像资料" prop="videoPath">
           <video width="300" height="150" controls>
             <source :src="form.videoPath" type="video/mp4">
           </video>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="备注" prop="remark">
           <el-input disabled v-model="form.remark" placeholder="请输入备注" />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer" class="dialog-footer" v-if="dialogType !== 'textarea'">
+        <el-button v-if="form.status == 0" type="success" @click="review">审 核</el-button>
+        <el-button v-if="form.status == 0" type="danger" @click="reject">驳 回</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+      <div slot="footer" class="dialog-footer" v-else>
+        <el-button type="success" @click="rejectok">确认</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -126,6 +134,13 @@ export default {
   dicts: ['baodao_type'],
   data() {
     return {
+      options: [
+        { value: 0, label: '待审核' },
+        { value: 2, label: '已审核' },
+        { value: 1, label: '已驳回' },
+      ],
+      textarea: '',
+      dialogType: 'form',
       // 遮罩层
       loading: true,
       // 选中数组
@@ -158,6 +173,7 @@ export default {
         phone: null,
         content: null,
         videoPath: null,
+        status: null,
       },
       // 表单参数
       form: {},
@@ -169,14 +185,47 @@ export default {
     this.getList();
   },
   methods: {
+    // 审核
+    async review() {
+      const res = await updateDangyuan({ ...this.form, status: 2 });
+      if (res.code == 200) {
+        this.getList();
+        this.$modal.msgSuccess("审核成功");
+        this.open = false;
+      }
+    },
+    // 驳回
+    reject() {
+      this.dialogType = 'textarea';
+      this.title = '请输入驳回原因';
+      this.open = true;
+      
+    },
+    // 确认驳回
+    async rejectok() {
+      if (!this.textarea) {
+        this.$modal.msgError("请输入驳回原因");
+        return;
+      };
+      const res = await updateDangyuan({ ...this.form, status: 1, rejectReason: this.textarea });
+      if (res.code == 200) {
+        this.getList();
+        this.$modal.msgSuccess("驳回成功");
+        this.open = false;
+        this.dialogType = 'form';
+      }
+    },
     /** 查询党员报到列表 */
     getList() {
       this.loading = true;
       listDangyuan(this.queryParams).then(response => {
         this.dangyuanList = response.rows.map(e => {
           const data = this.dict.type.baodao_type.find(j => j.value == e.reportType);
-          e.reportType = data.label;
-          e.sex = e.sex == '1' ? '男' : '女';
+          e.reportTypeName = data.label;
+          e.sexName = e.sex == '1' ? '男' : '女';
+          if (e.status == 0) e.statusName = '待审核';
+          if (e.status == 2) e.statusName = '已审核';
+          if (e.status == 1) e.statusName = '已驳回';
           return e;
         });
         this.total = response.total;
@@ -186,6 +235,7 @@ export default {
     // 取消按钮
     cancel() {
       this.open = false;
+      this.dialogType = 'form';
       this.reset();
     },
     // 表单重置
@@ -224,7 +274,7 @@ export default {
       const dangyuanId = row.dangyuanId || this.ids
       getDangyuan(dangyuanId).then(response => {
         const data = this.dict.type.baodao_type.find(j => j.value == response.data.reportType);
-        this.form = { ...response.data, reportType: data.label, sex: response.data.sex == 1 ? '男' : '女' };
+        this.form = { ...response.data, reportTypeName: data.label, sexName: response.data.sex == 1 ? '男' : '女' };
         this.open = true;
         this.title = "党员报到详情";
       });

+ 75 - 26
src/views/community/xiachenganbu/index.vue

@@ -26,6 +26,16 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="审核状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -35,27 +45,18 @@
     <el-table v-loading="loading" :data="xiachenganbuList">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="姓名" align="center" prop="name" />
-      <el-table-column label="性别" align="center" prop="sex" />
+      <el-table-column label="性别" align="center" prop="sexName" />
+      <el-table-column label="状态" align="center" prop="statusName" />
       <el-table-column label="工作单位" align="center" prop="workUnit" />
       <el-table-column label="包保楼栋" align="center" prop="baobaoloudong" />
       <el-table-column label="联系方式" align="center" prop="phone" />
-      <el-table-column label="是否兼任三长" align="center" prop="jianrensanzhang" />
+      <el-table-column label="是否兼任三长" align="center" prop="jianrensanzhangName" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['community:xiachenganbu:edit']"
-          >详情</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['community:xiachenganbu:remove']"
-          >删除</el-button>
+          <el-button v-if="scope.row.status == 0" size="mini" type="text" icon="el-icon-check" @click="handleUpdate(scope.row)">审核</el-button>
+          <el-button v-if="scope.row.status == 0" size="mini" type="text" icon="el-icon-close" @click="handleUpdate(scope.row)">驳回</el-button>
+          <el-button v-if="scope.row.status !== 0" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['community:dangyuan:edit']">详情</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['community:dangyuan:remove']">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -70,12 +71,13 @@
 
     <!-- 添加或修改下沉干部对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+       <el-input v-if="dialogType == 'textarea'" type="textarea" :rows="2" placeholder="请输入驳回原因" v-model="textarea"></el-input>
+      <el-form v-else ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="姓名" prop="name">
           <el-input disabled v-model="form.name" placeholder="请输入姓名" />
         </el-form-item>
-        <el-form-item label="性别" prop="sex">
-          <el-input disabled v-model="form.sex" placeholder="请输入性别" />
+        <el-form-item label="性别" prop="sexName">
+          <el-input disabled v-model="form.sexName" placeholder="请输入性别" />
         </el-form-item>
         <el-form-item label="工作单位" prop="workUnit">
           <el-input disabled v-model="form.workUnit" placeholder="请输入工作单位" />
@@ -86,14 +88,20 @@
         <el-form-item label="联系方式" prop="phone">
           <el-input disabled v-model="form.phone" placeholder="请输入联系方式" />
         </el-form-item>
-        <el-form-item label="是否兼任三长" prop="jianrensanzhang">
-          <el-input disabled v-model="form.jianrensanzhang" placeholder="请输入是否兼任三长" />
+        <el-form-item label="是否兼任三长" prop="jianrensanzhangName">
+          <el-input disabled v-model="form.jianrensanzhangName" placeholder="请输入是否兼任三长" />
         </el-form-item>
         <el-form-item label="备注" prop="remark">
           <el-input disabled v-model="form.remark" placeholder="请输入备注" />
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+       <div slot="footer" class="dialog-footer" v-if="dialogType !== 'textarea'">
+        <el-button v-if="form.status == 0" type="success" @click="review">审 核</el-button>
+        <el-button v-if="form.status == 0" type="danger" @click="reject">驳 回</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+      <div slot="footer" class="dialog-footer" v-else>
+        <el-button type="success" @click="rejectok">确认</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
@@ -107,6 +115,13 @@ export default {
   name: "Xiachenganbu",
   data() {
     return {
+      options: [
+        { value: 0, label: '待审核' },
+        { value: 2, label: '已审核' },
+        { value: 1, label: '已驳回' },
+      ],
+      textarea: '',
+      dialogType: 'form',
       // 遮罩层
       loading: true,
       // 选中数组
@@ -136,6 +151,7 @@ export default {
         baobaoloudong: null,
         phone: null,
         jianrensanzhang: null,
+        statue: null,
       },
       // 表单参数
       form: {},
@@ -151,13 +167,46 @@ export default {
     this.getList();
   },
   methods: {
+    // 审核
+    async review() {
+      const res = await updateXiachenganbu({ ...this.form, status: 2 });
+      if (res.code == 200) {
+        this.getList();
+        this.$modal.msgSuccess("审核成功");
+        this.open = false;
+      }
+    },
+    // 驳回
+    reject() {
+      this.dialogType = 'textarea';
+      this.title = '请输入驳回原因';
+      this.open = true;
+      
+    },
+    // 确认驳回
+    async rejectok() {
+      if (!this.textarea) {
+        this.$modal.msgError("请输入驳回原因");
+        return;
+      };
+      const res = await updateXiachenganbu({ ...this.form, status: 1, rejectReason: this.textarea });
+      if (res.code == 200) {
+        this.getList();
+        this.$modal.msgSuccess("驳回成功");
+        this.open = false;
+        this.dialogType = 'form';
+      }
+    },
     /** 查询下沉干部列表 */
     getList() {
       this.loading = true;
       listXiachenganbu(this.queryParams).then(response => {
         this.xiachenganbuList = response.rows.map(e=> {
-          e.sex = e.sex == '1' ? '男' : '女';
-          e.jianrensanzhang = e.jianrensanzhang == '1' ? '是' : '否';
+          e.sexName = e.sex == '1' ? '男' : '女';
+          e.jianrensanzhangName = e.jianrensanzhang == '1' ? '是' : '否';
+          if (e.status == 0) e.statusName = '待审核';
+          if (e.status == 2) e.statusName = '已审核';
+          if (e.status == 1) e.statusName = '已驳回';
           return e;
         });
         this.total = response.total;
@@ -201,8 +250,8 @@ export default {
       this.reset();
       const xiachenganbuId = row.xiachenganbuId || this.ids
       getXiachenganbu(xiachenganbuId).then(response => {
-        response.data.sex = response.data.sex == '1' ? '男' : '女';
-         response.data.jianrensanzhang =  response.data.jianrensanzhang == '1' ? '是' : '否';
+        response.data.sexName = response.data.sex == '1' ? '男' : '女';
+        response.data.jianrensanzhangName =  response.data.jianrensanzhang == '1' ? '是' : '否';
         this.form = response.data;
         this.open = true;
         this.title = "下沉干部详情";

+ 2 - 1
vue.config.js

@@ -38,7 +38,8 @@ module.exports = {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `http://fuyu.scapp.cn/prod-api/`,
-        target: `http://192.168.0.71:8080`,
+        target: `http://192.168.0.71:8080`, 
+        // target: `http://172.17.116.208:8080`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''