فهرست منبع

Merge branch 'V0.0.2' of http://10.87.10.227:4000/jzyd_yyds/soc_web into V0.0.2

# Conflicts:
#	src/views/resumption/plan/dialog.edit.vue
jiawuxian 2 سال پیش
والد
کامیت
15a776b36a

+ 1 - 0
src/api/system/user.js

@@ -14,6 +14,7 @@ export function listAllUser(query) {
     url: '/system/user/selectAllUser',
     method: 'get',
     params: query
+
   })
 }
 

+ 25 - 14
src/views/check/dialog.edit.vue

@@ -185,7 +185,6 @@
             <el-col :span="6">
               <el-form-item prop="count" label="检查次数:">
                 <el-input-number
-                  
                   style="margin-left: 10px"
                   v-model="formData.count"
                   controls-position="right"
@@ -261,7 +260,8 @@
         <el-table :data="tableData" style="width: 100%" height="400px">
           <el-table-column label="是否扫描">
             <template v-slot="{ row }">
-              <el-switch :disabled="!getshenglianshe(row)"
+              <el-switch
+                :disabled="!getshenglianshe(row)"
                 v-model="row.pointScan"
                 active-text="是"
                 inactive-text="否"
@@ -272,7 +272,8 @@
 
           <el-table-column label="必完成项">
             <template v-slot="{ row }">
-              <el-switch :disabled="!getshenglianshe(row)"
+              <el-switch
+                :disabled="!getshenglianshe(row)"
                 v-model="row.required"
                 active-text="是"
                 inactive-text="否"
@@ -280,11 +281,16 @@
               </el-switch>
             </template>
           </el-table-column>
-          <el-table-column prop="ruleName" label="
-          "> </el-table-column>
+          <el-table-column
+            prop="ruleName"
+            label="
+          "
+          >
+          </el-table-column>
           <el-table-column prop="itemName" label="检查项"> </el-table-column>
           <el-table-column prop="pointName" label="检查内容"> </el-table-column>
-          <el-table-column v-if="false" prop="ofOrgId" label="所属机构id"> </el-table-column>
+          <el-table-column v-if="false" prop="ofOrgId" label="所属机构id">
+          </el-table-column>
           <el-table-column prop="areaName" label="检查区域"> </el-table-column>
           <el-table-column prop="businessType" label="数据来源">
             <template slot-scope="r">
@@ -310,7 +316,7 @@
         <el-button @click="onHide">取消</el-button>
         <el-button type="primary" @click="onSubmit">确定</el-button>
       </div>
-   </DialogCom>
+    </DialogCom>
     <DialogSelect
       ref="DialogSelect"
       :defaultSelect="defaultSelect"
@@ -341,7 +347,7 @@ export default {
   ],
   data() {
     return {
-      parentCount:1,
+      parentCount: 1,
       defaultSelect: [],
       selectedValues: [],
       planRoles: [],
@@ -397,9 +403,14 @@ export default {
     //编辑内容判断
     isChildren() {
       // console.log(this.formData.distributePlanStatus,"distributePlanStatus")
+      //计划所属机构id等于当前机构id并且不存在已完成或者已逾期或者
+      //计划所属机构类型不等于行社并且不存在已完成或者已逾期或者
+      //新增
       if (
-        this.formData.distributePlanStatus != 1 &&
-        (this.formData.hasEdit != 1 || this.id == null)
+        (this.formData.planCreateOrgId == this.orgId &&
+          this.formData.hasEdit != 1) ||
+        (this.formData.planOfOrgType != 3 && this.formData.hasEdit != 1) ||
+        this.id == null
       ) {
         return false;
       } else return true;
@@ -483,7 +494,7 @@ export default {
     async refresh(id, other) {
       if (id != null && id != undefined) {
         await api.get(id).then((res) => {
-          this.parentCount=res.data.parentCount;
+          this.parentCount = res.data.parentCount;
           this.formData = res.data;
           this.formData.buildTaskNow;
           this.tableData = res.data.rulePointList;
@@ -537,7 +548,7 @@ export default {
       // console.log(selectList,"selectList");
       for (let i = 0; i < selectList.length; i++) {
         let tem = {
-          ofOrgId:this.orgId,
+          ofOrgId: this.orgId,
           pointScan: selectList[i].pointScan,
           required: !selectList[i].required,
           ruleName: selectList[i].ruleName,
@@ -558,8 +569,8 @@ export default {
     async show(id, other = {}) {
       this.id = id;
       this.tableData = null;
-      this.formData.execOrgIds=[];
-      this.formData.checkOrgIds=[];
+      this.formData.execOrgIds = [];
+      this.formData.checkOrgIds = [];
       this.formData.itemList = {};
       await this.refresh(id, other);
       this.getRolesByOrg();

+ 102 - 90
src/views/check/index.vue

@@ -54,7 +54,6 @@
                 :value="dict.value"
               />
             </el-select>
-
           </el-form-item>
 
           <el-form-item prop="checkRole" label="检查角色">
@@ -151,7 +150,6 @@
         </el-row>
 
         <el-table
-
           v-loading="loading"
           :data="pageData"
           @selection-change="handleSelectionChange"
@@ -159,7 +157,7 @@
           :tree-props="{ children: 'children' }"
         >
           <el-table-column
-          type = 'index'
+            type="index"
             label="序号"
             width="80px"
             v-if="columns[0].visible"
@@ -174,15 +172,13 @@
             label="计划所属机构"
             v-if="columns[4].visible"
           >
-
-        </el-table-column>
+          </el-table-column>
 
           <el-table-column
             prop="planCreateOrgName"
             label="计划创建机构"
             v-if="columns[3].visible"
           >
-
           </el-table-column>
           <el-table-column
             prop="checkType"
@@ -190,9 +186,7 @@
             v-if="columns[2].visible"
           >
             <template slot-scope="r"
-              >{{
-                getLabel(dict.type.check_type, `${r.row.checkType}`)
-              }}
+              >{{ getLabel(dict.type.check_type, `${r.row.checkType}`) }}
             </template>
           </el-table-column>
           <el-table-column
@@ -201,9 +195,7 @@
             v-if="columns[2].visible"
           >
             <template slot-scope="r"
-              >{{
-                getLabel(dict.type.sys_org_type, `${r.row.execOrgType}`)
-              }}
+              >{{ getLabel(dict.type.sys_org_type, `${r.row.execOrgType}`) }}
             </template>
           </el-table-column>
 
@@ -223,12 +215,12 @@
             label="检查角色"
             v-if="columns[6].visible"
           >
-          <template slot-scope="scope">
+            <template slot-scope="scope">
               <template v-for="item in splitRoleNames(scope.row.roleNames)">
                 {{ item }}
                 <br />
-              </template>
-            </template></el-table-column>
+              </template> </template
+          ></el-table-column>
           <el-table-column
             prop="planCycle"
             label="检查周期"
@@ -236,9 +228,7 @@
             v-if="columns[6].visible"
           >
             <template slot-scope="r"
-              >{{
-                getLabel(dict.type.check_cycle, `${r.row.planCycle}`)
-              }}
+              >{{ getLabel(dict.type.check_cycle, `${r.row.planCycle}`) }}
             </template>
           </el-table-column>
 
@@ -255,9 +245,7 @@
             v-if="columns[6].visible"
           >
             <template slot-scope="r"
-              >{{
-                getLabel(dict.type.check_status, `${r.row.planStatus}`)
-              }}
+              >{{ getLabel(dict.type.check_status, `${r.row.planStatus}`) }}
             </template>
           </el-table-column>
 
@@ -273,17 +261,15 @@
             width="80px"
             v-if="columns[6].visible"
           >
-
-          <template slot-scope="scope">
-              <span>{{ formatTime(scope.row.updateTime,"YYYY-MM-DD") }}</span>
+            <template slot-scope="scope">
+              <span>{{ formatTime(scope.row.updateTime, "YYYY-MM-DD") }}</span>
             </template>
-
           </el-table-column>
 
           <el-table-column label="操作">
             <template slot-scope="r">
               <el-button
-              v-if="eqOrg(r.row)"
+                v-if="eqOrg(r.row)"
                 size="mini"
                 type="text"
                 icon="el-icon-edit-outline"
@@ -292,7 +278,7 @@
                 >编辑</el-button
               >
               <el-button
-              v-if="eqOrg2(r.row)"
+                v-if="eqOrg2(r.row)"
                 size="mini"
                 type="text"
                 icon="el-icon-delete"
@@ -307,23 +293,26 @@
                 v-if="checkCanPublish(r.row)"
                 @click="showDialogDistribute(r.row)"
                 v-hasPermi="['core:checkplan:distribute']"
-                >下发</el-button>
-                <el-button
+                >下发</el-button
+              >
+              <el-button
                 size="mini"
                 type="text"
                 icon="el-icon-arrow-down"
                 v-if="newcheckCanPublish(r.row)"
                 @click="newshowDialogDistribute(r.row)"
                 v-hasPermi="['core:checkplan:distribute']"
-                >下发</el-button>
-                <el-button
+                >下发</el-button
+              >
+              <el-button
                 size="mini"
                 type="text"
                 icon="el-icon-arrow-down"
                 v-if="chehui(r.row)"
                 @click="chhuile(r.row)"
                 v-hasPermi="['core:checkplan:distribute']"
-                >撤回</el-button>
+                >撤回</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
@@ -350,7 +339,7 @@
 <script>
 import DialogDistribute from "./distribute.vue";
 import OrgTree from "@/components/orgTree";
-import { mapState, mapMutations,mapGetters } from "vuex";
+import { mapState, mapMutations, mapGetters } from "vuex";
 import DialogEdit from "./dialog.edit";
 import * as api from "@/api/safetycheck/plan";
 import { statusOptions, getLabel } from "@/views/commonOption";
@@ -360,7 +349,9 @@ export default {
   dicts: [
     "sys_org_type",
     "rule_type",
-    "check_cycle","check_status","check_type"
+    "check_cycle",
+    "check_status",
+    "check_type",
   ],
   components: {
     DialogEdit,
@@ -390,12 +381,12 @@ export default {
         checkType: null,
         planOfOrgId: null,
         execOrgType: null,
-        checkOrgType:null,
-        planStatus:null,
-        pageSize:10,
-        pageNum:1,
-        checkSub:false,
-        orgId:null,
+        checkOrgType: null,
+        planStatus: null,
+        pageSize: 10,
+        pageNum: 1,
+        checkSub: false,
+        orgId: null,
         ...query,
       },
       pageData: [],
@@ -424,12 +415,17 @@ export default {
   },
   methods: {
     ...mapMutations([]),
-    
+
     //判断是否跟当前用户同机构
     eqOrg(row) {
-      console.log(row.planOfOrgId,"row.planOfOrgId");
-      console.log(this.orgId,"this.orgId");
-      if (row != null && row != undefined && row.planOfOrgId == this.orgId) {
+      // console.log(row.planOfOrgId,"row.planOfOrgId");
+      // console.log(this.orgId,"this.orgId");
+      if (
+        row != null &&
+        row != undefined &&
+        (row.planCreateOrgId == this.orgId ||
+          (row.planOfOrgType == 3 && row.planOfOrgId == this.orgId))
+      ) {
         return true;
       }
       return false;
@@ -437,74 +433,89 @@ export default {
     eqOrg2(row) {
       // console.log(row.planCreateOrgId,"row.planCreateOrgId");
       // console.log(this.orgId,"this.orgId");
-      if (row != null && row != undefined && row.planCreateOrgId == this.orgId&& row.planOfOrgId == this.orgId) {
+      if (
+        row != null &&
+        row != undefined &&
+        row.planCreateOrgId == this.orgId &&
+        row.planOfOrgId == this.orgId
+      ) {
         return true;
       }
       return false;
     },
-    newcheckCanPublish(row){
-      if ((row.planOfOrgType==3&&row.planStatus!=1)||(row.planStatus==2&& row.parentId != -1&& row.planOfOrgType ==1)) {
+    newcheckCanPublish(row) {
+      //如果计划所属机构类型为行社并且计划不为进行中并且计划创建机构为当前机构或者
+      //计划状态为停用并且不属于子计划并且计划所属机构类型为省联社
+      if (
+        (row.planOfOrgType == 3 &&
+          row.planStatus != 1 &&
+          row.planCreateOrgId == this.orgId) ||
+        (row.planStatus == 2 && row.parentId != -1 && row.planOfOrgType == 1)
+      ) {
         return true;
       }
       return false;
     },
-    newshowDialogDistribute(row){
+    newshowDialogDistribute(row) {
       this.$modal
         .confirm("是否下发!", "提示")
         .then(() => {
           // 用户点击了确认按钮
           console.log("执行操作...");
           this.loading = true;
-      api
-        .distributeCheHui(row.id)
-        .then((response) => {
-          // console.log(response, "then");
-          if (response.data == 0) {
-            this.loading = false;
-          } else {
-            this.getList();
-            this.loading = false;
-          }
-        })
-        .catch((response) => {
-          // console.log(response, "catch");
-          this.getList();
-          this.loading = false;
-        });
+          api
+            .distributeCheHui(row.id)
+            .then((response) => {
+              // console.log(response, "then");
+              if (response.data == 0) {
+                this.loading = false;
+              } else {
+                this.getList();
+                this.loading = false;
+              }
+            })
+            .catch((response) => {
+              // console.log(response, "catch");
+              this.getList();
+              this.loading = false;
+            });
         })
         .catch(() => {
           // 用户点击了取消按钮
           console.log("取消操作...");
         });
-
     },
-        //已完成下发的计划不显示下发按钮
+    //已完成下发的计划不显示下发按钮
     checkCanPublish(row) {
       // console.log(row.planOfOrgType == "1","row.planOfOrgType")
       // console.log(row.planOfOrgType == "1"&& row.distribute==null,"row.distribute")
 
       //如果计划所属机构为省联社并且计划下发状态为0并且计划检查机构类型不为省联社和办事处(只有一个无法下发)
-      if (row.planOfOrgType == "1"&& row.distribute==0&&row.execOrgType!="1"&&row.execOrgType!="2") {
-        return true
+      if (
+        row.planOfOrgType == "1" &&
+        row.distribute == 0 &&
+        row.execOrgType != "1" &&
+        row.execOrgType != "2"
+      ) {
+        return true;
       }
 
       return false;
     },
     splitRoleNames(val) {
-      if(val!=null&&val!=undefined){
-        return val.split(',');
-      }else{
+      if (val != null && val != undefined) {
+        return val.split(",");
+      } else {
         return [];
       }
       // 使用逗号分割字符串,得到角色名称的数组
-
     },
-    sel(selectList){
+    sel(selectList) {
       this.loading = true;
       api.distribute(selectList).then((response) => {
         this.getList();
-          this.loading = false;
-        })
+        this.loading = false;
+      });
     },
     getRolesByOrg() {
       let params = {
@@ -534,14 +545,14 @@ export default {
       this.getList();
     },
     handleAdd(id, other = {}) {
-      id=null;
+      id = null;
       this.$refs.editDialog.show(id, other);
     },
     onEdit(id, other = {}) {
       this.$refs.editDialog.show(id, other);
     },
-     //开始撤回
-     chhuile(row) {
+    //开始撤回
+    chhuile(row) {
       this.loading = true;
       api.cheHui(row.id).then((response) => {
         this.getList();
@@ -550,31 +561,32 @@ export default {
     },
     //已下发的显示撤回
     chehui(row) {
-      if (row.distribute == 1) {
+      if (row.distribute == 1 && row.planCreateOrgId == this.orgId) {
         return true;
       }
       return false;
     },
-    showDialogDistribute(row){
-      console.log(row,"qqq")
+    showDialogDistribute(row) {
+      console.log(row, "qqq");
       this.$refs.dialogDistribute.show(row);
     },
     async onDel(id, name) {
-
       this.$modal
         .confirm('是否确认删除名称为"' + name + '"的数据项?')
         .then(() => {
           // 用户点击了确认按钮
           console.log("执行操作...");
           this.loading = true;
-          api.delelte(id).then(() => {
-            this.getList();
-            this.loading = false;
-            this.$modal.msgSuccess("删除成功");
-            
-          }).catch(()=>{
-            this.loading = false;
-          });
+          api
+            .delelte(id)
+            .then(() => {
+              this.getList();
+              this.loading = false;
+              this.$modal.msgSuccess("删除成功");
+            })
+            .catch(() => {
+              this.loading = false;
+            });
         })
         .catch(() => {
           // 用户点击了取消按钮

+ 17 - 15
src/views/core/accessPlan/index.vue

@@ -96,7 +96,7 @@
           <el-table-column label="备注" align="center" prop="description"/>
           <el-table-column label="操作" fixed="right" width="120" align="center" class-name="small-padding fixed-width">
             <template slot-scope="scope">
-              <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"
+              <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleUpdate(scope.row)" v-if="scope.row.parentId==null&&(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.parentId==null&& scope.row.orgId==isEdit&&scope.row.isDistribute == 0 && (scope.row.planStatus==0||scope.row.planStatus==2)" icon="el-icon-arrow-down"
@@ -105,7 +105,8 @@
               <el-button size="mini" type="text" v-if="scope.row.orgId==isEdit&&scope.row.isDistribute == 1 && scope.row.planStatus==1&&scope.row.parentId==null" 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"
+
+              <el-button size="mini" type="text" v-if="scope.row.parentOrgId==isEdit&&scope.row.parentId==null && check==true" icon="el-icon-delete" @click="handleDelete(scope.row)" 
                          v-hasPermi="['core:accessPlan:remove']">删除
               </el-button>
             </template>
@@ -138,6 +139,16 @@
                        :value="`${dict.value}`" :disabled="form.isEdit||form.isComplete"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="立即生效" prop="immediately" v-if="form.planCycle!=0">
+              <el-checkbox v-model="form.immediately">
+                默认从下个周期生成任务,
+                <br/>
+                勾选后从当前周期立即生成任务
+                <!-- <el-popover placement="top-start" title="" width="200" trigger="hover"
+                            content="" :disabled="form.isEdit">
+                </el-popover> -->
+              </el-checkbox>
+            </el-form-item> 
         <el-form-item prop="startTime" v-if="form.planCycle == 0" label="开始日期">
           <el-date-picker style="width: 100%;" v-model="form.startTime" @change="startDateChanged" :picker-options="startDatepickerOptions"
                           align="right" type="date" placeholder="选择开始日期" :disabled="form.isEdit||form.isComplete">
@@ -169,16 +180,7 @@
             </el-radio>
           </el-radio-group>
         </el-form-item> -->
-            <el-form-item label="立即生效" prop="immediately" v-if="form.planCycle!=0">
-              <el-checkbox v-model="form.immediately">
-                默认从下个周期生成任务,
-                <br/>
-                勾选后从当前周期立即生成任务
-                <!-- <el-popover placement="top-start" title="" width="200" trigger="hover"
-                            content="" :disabled="form.isEdit">
-                </el-popover> -->
-              </el-checkbox>
-            </el-form-item> 
+      
 
        
         <el-form-item label="备注" prop="description">
@@ -463,7 +465,7 @@
       handleDelete(row) {
         const ids = row.id || this.ids;
         const names = row.planName || this.names;
-        this.$modal.confirm('是否确认删除监控调阅计划"' + names + '"的数据项?').then(function () {
+        this.$modal.confirm('删除计划会清除本周期所有任务,确定执行?').then(function () {
           return delPlan(ids);
         }).then(() => {
           this.getList();
@@ -472,7 +474,7 @@
         });
       },
       handDistribute(row) {
-        this.$modal.confirm('是否确认下发监控调阅计划"' + row.planName + '"的数据项?').then(function () {
+        this.$modal.confirm('下发计划会生成本周期所有任务,确定执行?').then(function () {
           return distribute(row.id);
         }).then(() => {
           this.getList();
@@ -482,7 +484,7 @@
 
       },
       handWithdraw(row){
-        this.$modal.confirm('撤回计划会清除本周期所有任务?').then(function () {
+        this.$modal.confirm('撤回计划会清除本周期所有任务,确定执行?').then(function () {
           return withdraw(row.id);
         }).then(() => {
           this.getList();

+ 1 - 1
src/views/core/configuration/index.vue

@@ -339,7 +339,7 @@ export default {
         coreResumptionConfiguration: [this.day, this.week, this.month, this.season, this.halfYear, this.year]
       };
       insertConfiguration(data).then(response => {
-        this.$modal.msgSuccess("新增成功");
+        this.$modal.msgSuccess("保存成功");
         this.open = false;
       this.  selectInfo();
       })

+ 4 - 4
src/views/core/drill/drillDictionary/index.vue

@@ -122,8 +122,7 @@
           <el-input v-model="form.drillProjects" maxlength="50"  placeholder="请输入解决方案"/>
         </el-form-item>
         <el-form-item label="预设案由" prop="defaultCause">
-          <el-input v-model="form.defaultCause" maxlength="2000" :rows="6"
-  show-word-limit type="textarea" placeholder="请输入预设案由"/>
+          <k-textarea v-model="form.defaultCause" :length="2000" show-word-limit placeholder="请输入预设案由"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -145,12 +144,13 @@ import {
 } from "@/api/core/drill/drillDictionary";
 import OrgTree from "@/components/orgTree";
 import BtnTip from "@/components/btnTip";
-import KFileUpload from "@/components/K-FileUpload";
 import tableList from "@/mixins/tableList";
 import {queryKnowledgeList} from "@/api/core/edu/knowledge";
+import KTextarea from "@/components/common/textarea.vue";
+
 export default {
   name: "DrillDictionary",
-  components: {OrgTree,BtnTip},
+  components: {OrgTree,BtnTip,KTextarea},
   dicts: ['core_drill_type'],
   mixins: [tableList],
   data() {

+ 3 - 2
src/views/core/edu/plan/index.vue

@@ -242,7 +242,7 @@
         <el-row>
           <el-col :span="24">
             <el-form-item label="备注" prop="remark">
-              <el-input v-model="form.remark" maxlength="200" :autosize="{ minRows: 2, maxRows: 4}" type="textarea"
+              <k-textarea  v-model="form.remark" :length="200" :autosize="{ minRows: 2, maxRows: 4}" type="textarea"
                         show-word-limit placeholder="请输入备注"/>
             </el-form-item>
           </el-col>
@@ -295,11 +295,12 @@ import {deptTreeSelect} from "@/api/system/public";
 import KFileUpload from "@/components/K-FileUpload/index.vue";
 import DialogSelectFile from "./dialog.select.file.vue";
 import dayjs from "dayjs";
+import KTextarea from "@/components/common/textarea.vue";
 
 export default {
   name: "Plan",
   dicts: ['sys_org_type', 'edu_plan_cycle', 'edu_plan_status'],
-  components: {OrgTreeSelect, OrgTree, KFileUpload, DialogSelectFile},
+  components: {OrgTreeSelect, OrgTree, KFileUpload, DialogSelectFile,KTextarea},
   mixins: [tableList],
   data() {
     return {

+ 16 - 10
src/views/core/materials/index.vue

@@ -178,8 +178,8 @@
     </el-row>
     <!-- 添加或修改学习资料对话框 -->
     <DialogCom :title="title" :visible.sync="open" @close="cancel" width="700px" append-to-body>
-      <el-form :disabled="title=='学习资料详情'" ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="资料名称" prop="title">
+      <el-form :disabled="title=='知识库详情'" ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="资料名称" prop="title" class="endItem">
           <el-input v-model="form.title" placeholder="请输入资料名称" maxlength="50" show-word-limit/>
         </el-form-item>
 
@@ -199,16 +199,18 @@
         </el-form-item>-->
 
         <el-form-item label="资料附件" prop="fileList">
-          <K-file-upload  ref="upload" :isShowUploadBtn="title!='学习资料详情'"
+          <K-file-upload  ref="upload" :isShowUploadBtn="title!='知识库详情'"
           :defaultValue="formFileListDefualtValue"
           v-model="form.fileList"/>
         </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入备注" maxlength="200" show-word-limit/>
+
+        <el-form-item prop="remark" label="备注">
+          <k-textarea v-model="form.remark" placeholder="请输入备注" :length="200"/>
         </el-form-item>
+
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button v-show="title!='学习资料详情'" type="primary" @click="submitForm">确 定</el-button>
+        <el-button v-show="title!='知识库详情'" type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </DialogCom>
@@ -231,10 +233,11 @@ import OrgTree from "@/components/orgTree/index.vue";
 import kOrgTree from "@/components/k-orgTree/index.vue";
 import KFileUpload from "@/components/K-FileUpload/index.vue";
 import tableList from "@/mixins/tableList";
+import KTextarea from "@/components/common/textarea.vue";
 
 export default {
   name: "Materials",
-  components: {OrgTree, kOrgTree, KFileUpload},
+  components: {OrgTree, kOrgTree, KFileUpload,KTextarea},
   mixins: [tableList],
   dicts: ["edu_materials_type"],
   data() {
@@ -471,7 +474,7 @@ export default {
         this.form = response.data;
         this.formFileListDefualtValue=this.form.fileList;
         this.open = true;
-        this.title = "修改学习资料";
+        this.title = "修改知识库";
       });
     },
     /** 详情按钮操作 */
@@ -482,7 +485,7 @@ export default {
         this.form = response.data;
         this.formFileListDefualtValue=this.form.fileList;
         this.open = true;
-        this.title = "学习资料详情";
+        this.title = "知识库详情";
       });
     },
     /** 提交按钮 */
@@ -523,10 +526,13 @@ export default {
   }
 };
 </script>
-<style>
+<style lang="scss">
 .ellipsis {
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
 }
+.endItem .el-input__inner{
+  padding-right: 50px;
+}
 </style>

+ 9 - 9
src/views/core/send/index.vue

@@ -70,24 +70,24 @@
     <DialogCom :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="标题" prop="title">
-          <el-input v-model="form.title" maxlength="50" placeholder="请输入标题" />
+          <el-input v-model="form.title" maxlength="50" placeholder="请输入标题" clearable/>
         </el-form-item>
         <el-form-item label="类型" prop="type">
-          <el-select v-model="form.type" style="width: 100%" placeholder="请选择类型">
+          <el-select v-model="form.type" style="width: 100%" placeholder="请选择类型" clearable>
             <el-option v-for="dict in dict.type.message_type" :key="dict.value" :label="dict.label"
               :value="`${dict.value}`"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="内容" prop="content">
-          <el-input v-model="form.content" type="textarea" :rows="10" maxlength="2000" placeholder="输入内容" />
+          <el-input v-model="form.content" type="textarea" :rows="10" maxlength="2000" placeholder="输入内容" clearable/>
         </el-form-item>
 
         <el-form-item label="发送目标" prop="sendUser">
-          <el-select mode="multiple" style="width: 100%;" v-model="form.sendUser" placeholder="按用户选择">
+          <el-select mode="multiple" style="width: 100%;" v-model="form.sendUser" filterable placeholder="按用户选择" clearable>
             <el-option v-for="item in userOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
-          </el-select>
+          </el-select> 
 
-          <el-select mode="multiple" style="width: 100%;" v-model="form.sendRole" placeholder="按角色选择">
+          <el-select mode="multiple" style="width: 100%;" v-model="form.sendRole" filterable placeholder="按角色选择" clearable>
             <el-option v-for="item in roleOptions" :key="item.id" :label="item.roleName" :value="item.id"></el-option>
           </el-select>
         </el-form-item>
@@ -240,7 +240,7 @@ export default {
   },
   created() {
     this.getList();
-    this.getAllUser();
+    this.getAllUser("");
     this.getAllRole();
   },
   methods: {
@@ -253,8 +253,8 @@ export default {
         this.loading = false;
       });
     },
-    getAllUser() {
-      listAllUser().then(response => {
+    getAllUser(val) {
+      listAllUser(val).then(response => {
         this.userOptions = response.data;
         this.form.sendRole = null;
       })

+ 39 - 40
src/views/resumption/plan/dialog.edit.vue

@@ -77,7 +77,7 @@
             </el-col>
             <!-- <el-col :span="6">
               <el-form-item prop="planStatus" label="计划状态:"> -->
-                <!-- <el-select
+            <!-- <el-select
                   :disabled="getDistributePlanStatus()"
                   prop="planStatus"
                   label="计划状态"
@@ -93,21 +93,20 @@
                   >
                   </el-option>
                 </el-select> -->
-                <!-- <el-switch
+            <!-- <el-switch
                   v-model="formData.planStatus"
                   active-value="1"
                   inactive-value="0"
                 ></el-switch> -->
-              <!-- </el-form-item> -->
+            <!-- </el-form-item> -->
             <!-- </el-col> -->
             <el-col :span="6" v-if="id ? false : true">
-              <el-form-item prop="tempBuildTaskNow" label="立即生效:" >
+              <el-form-item prop="tempBuildTaskNow" label="立即生效:">
                 <el-checkbox
-                  
                   v-model="tempBuildTaskNow"
                   size="medium"
                   @change="handleCheckboxChange"
-                  >默认从下个周期生成任务,<br>勾选后从当前周期立即生成任务</el-checkbox
+                  >默认从下个周期生成任务,<br />勾选后从当前周期立即生成任务</el-checkbox
                 >
               </el-form-item>
             </el-col>
@@ -174,8 +173,6 @@
               </el-form-item>
             </el-col>
 
-
-
             <el-col :span="6">
               <el-form-item prop="count" label="履职次数:" v-if="false">
                 <el-input-number
@@ -205,7 +202,8 @@
         <el-table :data="tableData" style="width: 100%" height="400px">
           <el-table-column label="是否扫描">
             <template v-slot="{ row }">
-              <el-switch :disabled="!getshenglianshe(row)"
+              <el-switch
+                :disabled="!getshenglianshe(row)"
                 v-model="row.pointScan"
                 active-text="是"
                 inactive-text="否"
@@ -216,7 +214,8 @@
 
           <el-table-column label="必完成项">
             <template v-slot="{ row }">
-              <el-switch :disabled="!getshenglianshe(row)"
+              <el-switch
+                :disabled="!getshenglianshe(row)"
                 v-model="row.required"
                 active-text="是"
                 inactive-text="否"
@@ -227,12 +226,9 @@
           <el-table-column prop="ruleName" label="履职内容库">
           </el-table-column>
           <el-table-column prop="itemName" label="履职项"> </el-table-column>
-          <el-table-column prop="pointName" label="履职内容" width="300px">
-            <template slot-scope="scope">
-              <pre>{{ scope.row.pointName }}</pre>
-            </template>
+          <el-table-column prop="pointName" label="履职内容"> </el-table-column>
+          <el-table-column v-if="false" prop="ofOrgId" label="所属机构id">
           </el-table-column>
-          <el-table-column v-if="false" prop="ofOrgId" label="所属机构id"> </el-table-column>
           <el-table-column prop="areaName" label="履职区域"> </el-table-column>
           <el-table-column prop="checkName" label="履职点位"> </el-table-column>
           <el-table-column label="操作">
@@ -289,7 +285,7 @@ export default {
       selectedValues: [],
       resumptionRoles: [],
       planName: null,
-      tempBuildTaskNow:false,
+      tempBuildTaskNow: false,
       planType: null,
       planCycle: null,
       planStatus: null,
@@ -345,7 +341,9 @@ export default {
         planCycle: [{ required: true, message: "请选择履职周期" }],
         planStatus: [{ required: true, message: "请选择计划状态" }],
         execOrgType: [{ required: true, message: "请选择履职机构类型" }],
-        roleList: [{ required: true, message: "请选择履职角色" ,trigger: "change"}],
+        roleList: [
+          { required: true, message: "请选择履职角色", trigger: "change" },
+        ],
         planExec: [{ required: true, message: "请选择履职时间" }],
         count: [{ required: true, message: "请选择履职次数" }],
       },
@@ -396,42 +394,43 @@ export default {
           break;
 
         case "5":
-        const year2 = dateObj.getFullYear(); // 获取年份
+          const year2 = dateObj.getFullYear(); // 获取年份
           const month2 = String(dateObj.getMonth() + 1).padStart(2, "0"); // 获取月份,并补齐两位数
           const day2 = String(dateObj.getDate()).padStart(2, "0"); // 获取日期,并补齐两位数
-          var month3=month2;
+          var month3 = month2;
           month3++;
-          for(var i=0;i<12;i++)
-          {
-            if(month3==1||month3==4||month3==7||month3==10){
+          for (var i = 0; i < 12; i++) {
+            if (month3 == 1 || month3 == 4 || month3 == 7 || month3 == 10) {
               continue;
             }
-            if(month3==13){
-              month3=1;
+            if (month3 == 13) {
+              month3 = 1;
             }
             month3++;
           }
           this.buildTime = `${year2}-${month3}-${day2}`;
 
-
           break;
       }
     },
     //编辑内容判断
     isChildren() {
       // console.log(this.formData.distributePlanStatus,"distributePlanStatus")
-      if (this.formData.distributePlanStatus!=1&&(
-        this.formData.hasEdit != 1 ||
-        this.id == null 
-      )) {
+      //计划所属机构id等于当前机构id并且不存在已完成或者已逾期或者
+      //计划所属机构类型不等于行社并且不存在已完成或者已逾期或者
+      //新增
+      if (
+        (this.formData.planCreateOrgId == this.orgId &&
+          this.formData.hasEdit != 1) ||
+        (this.formData.planOfOrgType != 3 && this.formData.hasEdit != 1) ||
+        this.id == null
+      ) {
         return false;
       } else return true;
     },
     //省联社履职内容不能删除
     getshenglianshe(row) {
-      if (
-        row.ofOrgId==this.orgId
-      ) {
+      if (row.ofOrgId == this.orgId) {
         return true;
       } else return false;
     },
@@ -592,7 +591,7 @@ export default {
       };
     },
     handleCheckboxChange() {
-      this.formData.buildTaskNow=this.tempBuildTaskNow?1:0;
+      this.formData.buildTaskNow = this.tempBuildTaskNow ? 1 : 0;
     },
     getRolesByOrg() {
       if (this.formData.execOrgType != null) {
@@ -626,17 +625,17 @@ export default {
       for (let i = 0; i < selectList.length; i++) {
         let item = selectList[i];
         let exist = this.tableData.find((d) => d.id == item.id);
-        console.log(this.orgId,"this.orgId")
+        console.log(this.orgId, "this.orgId");
         if (!exist) {
           let tem = {
-            ofOrgId:this.orgId,
+            ofOrgId: this.orgId,
             pointScan: !item.pointScan,
             required: !item.required,
             ruleName: item.ruleName,
             itemName: item.itemName,
             pointName: item.pointName,
             areaName: item.areaName,
-            checkName:item.checkName,
+            checkName: item.checkName,
             itemId: item.itemId,
             id: item.id,
           };
@@ -647,13 +646,13 @@ export default {
       }
     },
     onOrgTypeChanged() {
-      this.formData.roleList =[];
+      this.formData.roleList = [];
       this.tableData = [];
       this.getRolesByOrg();
     },
     async show(id, other = {}) {
-      this.tempBuildTaskNow=false;
-      this.buildTime=null;
+      this.tempBuildTaskNow = false;
+      this.buildTime = null;
       this.id = id;
       this.tableData = null;
       this.formData.itemList = null;
@@ -704,7 +703,7 @@ export default {
     },
     onSubmit() {
       this.$refs.form.validate(async (isValidate) => {
-        this.formData.planStatus=0;
+        this.formData.planStatus = 0;
         this.isSubmitting = true;
         // this.formData.note = this.formData.description;
         this.formData.planCreateOrgId = this.orgId;

+ 12 - 7
src/views/resumption/plan/index.vue

@@ -428,9 +428,9 @@ export default {
     ...mapMutations([]),
     //判断是否跟当前用户同机构
     eqOrg(row) {
-      console.log(row.planOfOrgId,"row.planOfOrgId");
-      console.log(this.orgId,"this.orgId");
-      if (row != null && row != undefined && row.planOfOrgId == this.orgId) {
+      // console.log(row.planOfOrgId,"row.planOfOrgId");
+      // console.log(this.orgId,"this.orgId");
+      if (row != null && row != undefined && (row.planCreateOrgId == this.orgId||(row.planOfOrgType==3&&row.planOfOrgId==this.orgId))) {
         return true;
       }
       return false;
@@ -453,9 +453,14 @@ export default {
       return false;
     },
     newcheckCanPublish(row){
-      // console.log(row.planOfOrgType,"row.planOfOrgType")
-      // console.log(row.planStatus,"row.planStatus")
-      if ((row.planOfOrgType==3&&row.planStatus!=1)||(row.planStatus==2&& row.parentId != -1&& row.planOfOrgType ==1)) {
+      //如果计划所属机构类型为行社并且计划不为进行中并且计划创建机构为当前机构或者
+      //计划状态为停用并且不属于子计划并且计划所属机构类型为省联社
+      if (
+        (row.planOfOrgType == 3 &&
+          row.planStatus != 1 &&
+          row.planCreateOrgId == this.orgId) ||
+        (row.planStatus == 2 && row.parentId != -1 && row.planOfOrgType == 1)
+      ) {
         return true;
       }
       return false;
@@ -480,7 +485,7 @@ export default {
     },
     //已下发的显示撤回
     chehui(row) {
-      if (row.distribute == 1) {
+      if (row.distribute == 1&&row.planCreateOrgId == this.orgId) {
         return true;
       }
       return false;

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

@@ -245,7 +245,7 @@ export default {
         assetType: [
           { required: true, message: '请选择资产类别', trigger: 'change' },
         ],
-        hostId: [{ required: true, message: '请选择主机', trigger: 'blur' }],
+        hostId: [{ required: true, message: '请选择主机', trigger: 'change' }],
         channel: [{ required: true, message: '请输入通道号', trigger: 'change' }],
         deviceType: [
           { required: true, message: '请选择设备分类', trigger: 'change' },

+ 7 - 7
src/views/system/user/extend.vue

@@ -25,9 +25,9 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="8" :lg="6">
 
-            <el-form-item label="持证上岗未通过原因" v-if="formData.certificateWork == 0" label-width="180"
+            <el-form-item label="持证上岗未通过原因" v-if="formData.certificateWork == 0" label-width="180" 
               prop="certificateFailReason">
-              <el-select style="width: 190px;" v-model="formData.certificateFailReason" placeholder="请选择持证上岗未通过原因">
+              <el-select style="width: 240px;" v-model="formData.certificateFailReason" placeholder="请选择持证上岗未通过原因">
                 <el-option v-for="dict in dict.type.post_no_pass" :key="dict.value" :label="dict.label"
                   :value="dict.value" />
               </el-select>
@@ -84,7 +84,7 @@
 
           <el-col :xs="24" :sm="12" :md="8" :lg="8">
             <el-form-item label="初级以上相关专业技术职业资格" label-width="240" prop="professionalQualifications">
-              <el-input style="width: 240px;" maxlength="50" v-model="formData.professionalQualifications"
+              <el-input style="width: 280px;" maxlength="50" v-model="formData.professionalQualifications"
                 placeholder="请输入初级以上相关专业技术职业资格">
               </el-input>
             </el-form-item>
@@ -110,16 +110,16 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="8" :lg="6">
             <el-form-item label="参加工作时间" prop="workTime">
-              <el-date-picker style="width: 217px;" v-model="formData.workTime" :picker-options="endDatepickerOptions"
+              <el-date-picker style="width: 217px;" v-model="formData.workTime" 
                 align="right" type="date" placeholder="请选择参加工作时间">
               </el-date-picker>
             </el-form-item>
           </el-col>
 
-
+          <!-- :picker-options="endDatepickerOptions" -->
           <el-col :xs="24" :sm="12" :md="8" :lg="6">
             <el-form-item prop="entryTime" label="现任职时间">
-              <el-date-picker v-model="formData.entryTime" :picker-options="endDatepickerOptions" align="right"
+              <el-date-picker v-model="formData.entryTime"  align="right"
                 type="date" placeholder="选择现任职时间">
               </el-date-picker>
             </el-form-item>
@@ -145,7 +145,7 @@
         </el-row>
         <el-row>
           <el-col :xs="24" :sm="24" :md="24" :lg="24">
-            <el-form-item label="上传相关证书">
+            <el-form-item v-if="formData.certificateWork == 0" label="上传相关证书">
               <imgs-upload :limit="5" v-model="formData.qualificationCertificateUrl" :fileSize="2"></imgs-upload>
             </el-form-item>
           </el-col>

+ 1 - 1
src/views/system/user/index.vue

@@ -47,9 +47,9 @@
             <!-- @visible-change="selectAllRoles" -->
             <el-select
               style="width: 200px"
-              clearable
               v-model="queryParams.roleId"
               placeholder="请选择用户角色"
+              clearable
             >
               <el-option
                 v-for="item in role_options"