Explorar o código

Merge remote-tracking branch 'origin/V0.0.2' into V0.0.2

jingyuanchao %!s(int64=2) %!d(string=hai) anos
pai
achega
5c61535f58

+ 2 - 2
.env.development

@@ -13,9 +13,9 @@ ENV = 'development'
 #VUE_APP_BASE_API = 'http://10.87.10.47:8080'
 #高雄
 #VUE_APP_BASE_API = 'http://10.87.11.94:8080'
-VUE_APP_BASE_API = 'http://localhost:8080'
+# VUE_APP_BASE_API = 'http://localhost:8080'
 # 55环境
-# VUE_APP_BASE_API = 'http://10.87.10.55:8080'
+VUE_APP_BASE_API = 'http://10.87.10.55:8080'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 9 - 0
src/api/core/accessPlan.js

@@ -25,6 +25,15 @@ export function distribute(id) {
     method: 'get'
   })
 }
+
+// 下发
+export function withdraw(id) {
+  return request({
+    url: '/core/accessPlan/withdraw/' + id,
+    showLoading:true,
+    method: 'get'
+  })
+}
 // 新增监控调阅计划
 export function addPlan(data) {
   return request({

+ 2 - 0
src/components/orgTree/orgDropDown.vue

@@ -6,6 +6,8 @@
     v-bind="$attrs"
     @select="select"
     ref="tree"
+    noResultsText="暂无符合条件的数据"
+    clearValueText="清除"
   />
 </template>
 <script>

+ 26 - 21
src/views/core/accessPlan/index.vue

@@ -37,7 +37,7 @@
           </el-form-item>
           <el-form-item label="计划状态" prop="planStatus">
             <el-select style="width: 100%;" v-model="queryParams.planStatus" placeholder="请选择计划状态">
-              <el-option v-for="dict in dict.type.plan_status" :key="dict.value" :label="dict.label"
+              <el-option v-for="dict in dict.type.edu_plan_status" :key="dict.value" :label="dict.label"
                          :value="`${dict.value}`"></el-option>
             </el-select>
           </el-form-item>
@@ -88,7 +88,7 @@
 
           <el-table-column label="计划状态" align="center" key="planStatus" prop="planStatus" width="80">
             <template slot-scope="scope">
-              <dict-tag :options="dict.type.plan_status" :value="scope.row.planStatus"/>
+              <dict-tag :options="dict.type.edu_plan_status" :value="scope.row.planStatus"/>
             </template>
           </el-table-column>
           <!-- <el-table-column label="修改人" align="center" prop="updateBy"/>
@@ -99,9 +99,12 @@
               <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleUpdate(scope.row)" v-if="(scope.row.parentOrgId==isEdit||scope.row.orgId==isEdit)&&check==true"
                          v-hasPermi="['core:accessPlan:edit','core:accessPlan:query']">编辑
               </el-button>
-              <el-button size="mini" type="text" v-if="scope.row.orgId==isEdit&&(1==xf)&&scope.row.isDistribute == 0 && scope.row.planStatus==0" icon="el-icon-arrow-down"
+              <el-button size="mini" type="text" v-if="scope.row.orgId==isEdit&&scope.row.isDistribute == 0 && (scope.row.planStatus==0||scope.row.planStatus==2)" icon="el-icon-arrow-down"
                          @click="handDistribute(scope.row)" v-hasPermi="['core:accessPlan:add']">下发
               </el-button>
+              <el-button size="mini" type="text" v-if="scope.row.orgId==isEdit&&scope.row.isDistribute == 1 && scope.row.planStatus==1" icon="el-icon-arrow-down"
+                         @click="handWithdraw(scope.row)" >撤回
+              </el-button>
               <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-if="(scope.row.parentOrgId==isEdit)&&scope.row.parentId==null && check==true"
                          v-hasPermi="['core:accessPlan:remove']">删除
               </el-button>
@@ -109,9 +112,6 @@
           </el-table-column>
         </el-table>
 
-        <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
-                    :limit.sync="queryParams.pageSize"
-                    @pagination="getList"/> -->
                     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
                     :limit.sync="queryParams.pageSize"
                     @pagination="getList"/>
@@ -154,31 +154,26 @@
             <el-option v-for="item in roleList" :key="item.id" :label="item.roleName" :value="item.id" :disabled="form.isEdit"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="调阅频次" prop="planFrequency">
+        <el-form-item label="调阅频次" prop="planFrequency" v-if="form.isEdit==true">
           <el-input type="number" @change="numChange"
                     v-model.number="form.planFrequency" placeholder="请输入调阅频次"/>
         </el-form-item>
-        <el-form-item label="计划状态" prop="planStatus">
-          <el-radio-group v-model="form.planStatus">
-            <el-radio v-for="dict in dict.type.plan_status" :key="dict.value" :label="dict.value" :disabled="form.isEdit">{{ dict.label
-              }}
-            </el-radio>
-          </el-radio-group>
+        <el-form-item label="调阅频次" prop="planFrequency" v-if="form.isEdit==false||form.isEdit==null">
+          <el-input type="number"  :min="1" oninput="if(value<0)value=1"
+                    v-model.number="form.planFrequency" placeholder="请输入调阅频次"/>
         </el-form-item>
-      <!-- <el-form-item label="立即生成任务" prop="immediately" v-if="form.planCycle!=0">
-          <el-radio-group v-model="form.immediately">
-            <el-radio v-for="dict in dict.type.is_full" :key="dict.value" :label="dict.value" :disabled="form.isEdit">{{ dict.label
+        <!-- <el-form-item label="计划状态" prop="planStatus">
+          <el-radio-group v-model="form.planStatus">
+            <el-radio v-for="dict in dict.type.edu_plan_status" :key="dict.value" :label="dict.value" :disabled="form.isEdit">{{ dict.label
               }}
             </el-radio>
           </el-radio-group>
-        </el-form-item>  -->
-
+        </el-form-item> -->
             <el-form-item label="立即生效" prop="immediately" v-if="form.planCycle!=0">
               <el-checkbox v-model="form.immediately">
               
                 <el-popover placement="top-start" title="" width="200" trigger="hover"
                             content="">
-                  <i class="el-icon-warning-outline change-icon" slot="reference"></i>
                 </el-popover>
               </el-checkbox>
             </el-form-item> 
@@ -197,7 +192,7 @@
 </template>
 
 <script>
-  import {listPlan, getPlan, delPlan, addPlan, updatePlan, distribute} from "@/api/core/accessPlan";
+  import {listPlan, getPlan, delPlan, addPlan, updatePlan, distribute,withdraw} from "@/api/core/accessPlan";
   import {listRole, findRoleByType, getRole, allRole} from "@/api/system/role";
   import tableList from "@/mixins/tableList";
   import orgTree from "@/components/orgTree";
@@ -206,7 +201,7 @@
 
   export default {
     name: "Plan",
-    dicts: ['sys_org_type', 'sys_access_cycle', 'sys_normal_disable', 'plan_status','is_full'],
+    dicts: ['sys_org_type', 'sys_access_cycle', 'sys_normal_disable', 'plan_status','is_full','edu_plan_status'],
     components: {
       orgTree
     },
@@ -484,6 +479,16 @@
         });
 
       },
+      handWithdraw(row){
+        this.$modal.confirm('是否确认撤回监控调阅计划"' + row.planName + '"的数据项?').then(function () {
+          return withdraw(row.id);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("撤回成功");
+        }).catch(() => {
+        });
+
+      },
       /** 导出按钮操作 */
       handleExport() {
         this.download('system/plan/export', {

+ 3 - 5
src/views/resumption/plan/dialog.edit.vue

@@ -136,7 +136,6 @@
             <el-col :span="6">
               <el-form-item prop="roleList" label="履职角色:">
                 <el-select
-                  @visible-change="onOrgTypeChanged"
                   :disabled="isChildren()"
                   label="履职角色"
                   v-model="formData.roleList"
@@ -412,12 +411,11 @@ export default {
           break;
       }
     },
-    //是否子计划判断
+    //编辑内容判断
     isChildren() {
       if (
-        this.formData.distributePlanStatus != null ||
-        this.id == null ||
-        this.formData.children == null
+        this.formData.hasEdit != 1 ||
+        this.id == null 
       ) {
         return false;
       } else return true;

+ 18 - 6
src/views/resumption/plan/index.vue

@@ -421,7 +421,7 @@ export default {
     eqOrg(row) {
       // console.log(row.planCreateOrgId,"row.planCreateOrgId");
       // console.log(this.orgId,"this.orgId");
-      if (row != null && row != undefined && row.planOfOrgId == this.orgId) {
+      if (row != null && row != undefined && row.planOfOrgId == this.orgId&& row.planOfOrgType==1) {
         return true;
       }
       return false;
@@ -436,11 +436,21 @@ export default {
     },
     //开始撤回
     chhuile(row) {
-      this.loading = true;
-      api.cheHui(row.id).then((response) => {
-        this.getList();
-        this.loading = false;
-      });
+      this.$modal
+        .confirm("撤回计划会清除本周期所有任务!", "提示")
+        .then(() => {
+          // 用户点击了确认按钮
+          console.log("执行操作...");
+          this.loading = true;
+          api.cheHui(row.id).then((response) => {
+            this.getList();
+            this.loading = false;
+          });
+        })
+        .catch(() => {
+          // 用户点击了取消按钮
+          console.log("取消操作...");
+        });
     },
     //已下发的显示撤回
     chehui(row) {
@@ -519,10 +529,12 @@ export default {
       this.$modal
         .confirm('是否确认删除名称为"' + name + '"的数据项?')
         .then(function () {
+          this.loading=true;
           return api.delelte(id);
         })
         .then(() => {
           this.getList();
+          this.loading=false;
           this.$modal.msgSuccess("删除成功");
         })
         .catch(() => {});

+ 1 - 0
src/views/system/device/index.vue

@@ -116,6 +116,7 @@
                 :props="{ checkStrictly: true, label: 'name' }"
                 placeholder="请选择归属机构"
                 @select="changeSelect"
+                 clearValueText="清除"
               />
             </el-form-item>
           </el-col>

+ 167 - 72
src/views/system/dict/data.vue

@@ -1,6 +1,13 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="字典名称" prop="dictType">
         <el-select v-model="queryParams.dictType">
           <el-option
@@ -20,7 +27,11 @@
         />
       </el-form-item>
       <el-form-item label="状态" prop="status">
-        <el-select v-model="queryParams.status" placeholder="数据状态" clearable>
+        <el-select
+          v-model="queryParams.status"
+          placeholder="数据状态"
+          clearable
+        >
           <el-option
             v-for="dict in dict.type.sys_normal_disable"
             :key="dict.value"
@@ -30,8 +41,16 @@
         </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>
+        <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
+        >
       </el-form-item>
     </el-form>
 
@@ -43,7 +62,8 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['system:dict:add']"
-        >新增</el-button>
+          >新增</el-button
+        >
       </el-col>
       <!-- <el-col :span="1.5">
         <el-button
@@ -84,38 +104,78 @@
           icon="el-icon-close"
           size="mini"
           @click="handleClose"
-        >关闭</el-button>
+          >关闭</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
     <el-table
-    border
-    height="700"
-    size="small"
-    v-loading="loading"  :data="dataList" @selection-change="handleSelectionChange">
+      border
+      height="700"
+      size="small"
+      v-loading="loading"
+      :data="dataList"
+      @selection-change="handleSelectionChange"
+    >
       <!-- <el-table-column type="selection" width="55" align="center" /> -->
       <el-table-column label="字典编码" align="center" prop="dictCode" />
       <el-table-column label="字典标签" align="center" prop="dictLabel">
         <template slot-scope="scope">
-          <span v-if="scope.row.listClass == '' || scope.row.listClass == 'default'">{{scope.row.dictLabel}}</span>
-          <el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass">{{scope.row.dictLabel}}</el-tag>
+          <span
+            v-if="scope.row.listClass == '' || scope.row.listClass == 'default'"
+            >{{ scope.row.dictLabel }}</span
+          >
+          <el-tag
+            v-else
+            :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass"
+            >{{ scope.row.dictLabel }}</el-tag
+          >
         </template>
       </el-table-column>
       <el-table-column label="字典键值" align="center" prop="dictValue" />
       <el-table-column label="字典排序" align="center" prop="dictSort" />
       <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
+          <dict-tag
+            :options="dict.type.sys_normal_disable"
+            :value="scope.row.status"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+      <el-table-column
+        label="备注"
+        align="center"
+        prop="remark"
+        :show-overflow-tooltip="true"
+      >
+        <template slot-scope="scope">
+          <el-tooltip  placement="top">
+            <div slot="content" class="tooltipClass">
+              {{ scope.row.remark }}
+            </div>
+          </el-tooltip>
+        </template>
+      </el-table-column>
+
+      <el-table-column
+        label="创建时间"
+        align="center"
+        prop="createTime"
+        width="180"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -123,20 +183,22 @@
             icon="el-icon-edit-outline"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['system:dict:edit']"
-          >编辑</el-button>
+            >编辑</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['system:dict:remove']"
-          >删除</el-button>
+            >删除</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
 
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
@@ -174,15 +236,16 @@
           <el-col :span="12">
             <el-form-item label="显示排序" prop="dictSort">
               <el-input-number
-              style="width: 100%;"
-              v-model="form.dictSort" controls-position="right" :min="0" />
+                style="width: 100%"
+                v-model="form.dictSort"
+                controls-position="right"
+                :min="0"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="回显样式" prop="listClass">
-              <el-select
-                style="width: 100%;"
-                v-model="form.listClass">
+              <el-select style="width: 100%" v-model="form.listClass">
                 <el-option
                   v-for="item in listClassOptions"
                   :key="item.value"
@@ -202,15 +265,19 @@
                   v-for="dict in dict.type.sys_normal_disable"
                   :key="dict.value"
                   :label="dict.value"
-                >{{dict.label}}</el-radio>
+                  >{{ dict.label }}</el-radio
+                >
               </el-radio-group>
             </el-form-item>
           </el-col>
-
         </el-row>
 
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+          <el-input
+            v-model="form.remark"
+            type="textarea"
+            placeholder="请输入内容"
+          ></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -222,12 +289,21 @@
 </template>
 
 <script>
-import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data";
-import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type";
+import {
+  listData,
+  getData,
+  delData,
+  addData,
+  updateData,
+} from "@/api/system/dict/data";
+import {
+  optionselect as getDictOptionselect,
+  getType,
+} from "@/api/system/dict/type";
 
 export default {
   name: "Data",
-  dicts: ['sys_normal_disable'],
+  dicts: ["sys_normal_disable"],
   data() {
     return {
       // 遮罩层
@@ -254,28 +330,28 @@ export default {
       listClassOptions: [
         {
           value: "default",
-          label: "默认"
+          label: "默认",
         },
         {
           value: "primary",
-          label: "主要"
+          label: "主要",
         },
         {
           value: "success",
-          label: "成功"
+          label: "成功",
         },
         {
           value: "info",
-          label: "信息"
+          label: "信息",
         },
         {
           value: "warning",
-          label: "警告"
+          label: "警告",
         },
         {
           value: "danger",
-          label: "危险"
-        }
+          label: "危险",
+        },
       ],
       // 类型数据字典
       typeOptions: [],
@@ -285,22 +361,22 @@ export default {
         pageSize: 10,
         dictName: undefined,
         dictType: undefined,
-        status: undefined
+        status: undefined,
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
         dictLabel: [
-          { required: true, message: "数据标签不能为空", trigger: "blur" }
+          { required: true, message: "数据标签不能为空", trigger: "blur" },
         ],
         dictValue: [
-          { required: true, message: "数据键值不能为空", trigger: "blur" }
+          { required: true, message: "数据键值不能为空", trigger: "blur" },
         ],
         dictSort: [
-          { required: true, message: "数据顺序不能为空", trigger: "blur" }
-        ]
-      }
+          { required: true, message: "数据顺序不能为空", trigger: "blur" },
+        ],
+      },
     };
   },
   created() {
@@ -311,7 +387,7 @@ export default {
   methods: {
     /** 查询字典类型详细 */
     getType(dictId) {
-      getType(dictId).then(response => {
+      getType(dictId).then((response) => {
         this.queryParams.dictType = response.data.dictType;
         this.defaultDictType = response.data.dictType;
         this.getList();
@@ -319,14 +395,14 @@ export default {
     },
     /** 查询字典类型列表 */
     getTypeList() {
-      getDictOptionselect().then(response => {
+      getDictOptionselect().then((response) => {
         this.typeOptions = response.data;
       });
     },
     /** 查询字典数据列表 */
     getList() {
       this.loading = true;
-      listData(this.queryParams).then(response => {
+      listData(this.queryParams).then((response) => {
         this.dataList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -344,10 +420,10 @@ export default {
         dictLabel: undefined,
         dictValue: undefined,
         cssClass: undefined,
-        listClass: 'default',
+        listClass: "default",
         dictSort: 0,
         status: "0",
-        remark: undefined
+        remark: undefined,
       };
       this.resetForm("form");
     },
@@ -376,34 +452,40 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.dictCode)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
+      this.ids = selection.map((item) => item.dictCode);
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const dictCode = row.dictCode || this.ids
-      getData(dictCode).then(response => {
+      const dictCode = row.dictCode || this.ids;
+      getData(dictCode).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "编辑";
       });
     },
     /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.dictCode != undefined) {
-            updateData(this.form).then(response => {
-              this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
+            updateData(this.form).then((response) => {
+              this.$store.dispatch(
+                "dict/removeDict",
+                this.queryParams.dictType
+              );
               this.$modal.msgSuccess("处理成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addData(this.form).then(response => {
-              this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
+            addData(this.form).then((response) => {
+              this.$store.dispatch(
+                "dict/removeDict",
+                this.queryParams.dictType
+              );
               this.$modal.msgSuccess("处理成功");
               this.open = false;
               this.getList();
@@ -415,20 +497,33 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const dictCodes = row.dictCode || this.ids;
-      this.$modal.confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?').then(function() {
-        return delData(dictCodes);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-        this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
-      }).catch(() => {});
+      this.$modal
+        .confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?')
+        .then(function () {
+          return delData(dictCodes);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+          this.$store.dispatch("dict/removeDict", this.queryParams.dictType);
+        })
+        .catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('system/dict/data/export', {
-        ...this.queryParams
-      }, `data_${new Date().getTime()}.xlsx`)
-    }
-  }
+      this.download(
+        "system/dict/data/export",
+        {
+          ...this.queryParams,
+        },
+        `data_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
 };
 </script>
+<style lang="scss" scoped>
+  .tooltipClass{
+    width: 300px;
+  }
+</style>