| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654 | <template>  <div class="app-container">    <el-row :gutter="20">      <!--机构数据-->      <el-col :span="4" :xs="24">        <org-tree          v-model="queryParams.orgId"          @defaultKey="getDefaultKey"          @checkChange="checkChange"          @click="clickTreeNode"          hangsheTree          :defaultCheckSub="false"        ></org-tree>      </el-col>      <el-col :span="20" :xs="24">        <!--    搜索条件    -->        <el-form          :model="queryParams"          ref="search"          size="small"          :inline="true"          v-show="showSearch"          label-width="70px"        >        <el-form-item prop="checkType" label="任务类型" >            <el-select              prop="checkType"              label="任务类型"              v-model="queryParams.checkType"              placeholder="请选择任务类型"              clearable            >              <el-option                v-for="dict in dict.type.check_type"                :key="dict.value"                :label="dict.label"                :value="dict.value"              />            </el-select>          </el-form-item>          <el-form-item prop="execOrgType" label="检查机构类型" v-if="false">            <el-select              prop="execOrgType"              label="检查机构类型"              v-model="queryParams.execOrgType"              placeholder="请选择检查机构类型"              clearable            >              <el-option                v-for="dict in dict.type.sys_org_type"                :key="dict.value"                :label="dict.label"                :value="dict.value"              />            </el-select>          </el-form-item>          <el-form-item prop="checkOrgType" label="受检机构类型" v-if="false">            <el-select              prop="checkOrgType"              label="受检机构类型"              v-model="queryParams.checkOrgType"              placeholder="请选择受检机构类型"              clearable            >              <el-option                v-for="dict in dict.type.sys_org_type"                :key="dict.value"                :label="dict.label"                :value="dict.value"              />            </el-select>          </el-form-item>          <el-form-item prop="checkRole" label="检查人员">            <el-select              @visible-change="getRolesByOrg"              prop="checkRole"              label="检查人员"              v-model="queryParams.checkRole"              placeholder="请选择用户角色"              clearable            >              <el-option                v-for="dict in resumptionRoles"                :key="dict.index"                :label="dict.roleName"                :value="dict.id"              />            </el-select>          </el-form-item>          <el-form-item prop="planCycle" label="任务周期">            <el-select              prop="planCycle"              label="任务周期"              v-model="queryParams.planCycle"              placeholder="请选择任务周期"              clearable            >              <el-option                v-for="item in dict.type.check_cycle"                :key="item.value"                :label="item.label"                :value="item.value"              >              </el-option>            </el-select>          </el-form-item>          <el-form-item prop="planStatus" label="任务状态">            <el-select              prop="planStatus"              label="任务状态"              v-model="queryParams.planStatus"              placeholder="请选择任务状态"              clearable            >              <el-option                v-for="item in dict.type.check_status"                :key="item.value"                :label="item.label"                :value="item.value"              >              </el-option>            </el-select>          </el-form-item>          <el-form-item prop="planName" label="任务名称">            <el-input              v-model="queryParams.planName"              :maxlength="50"              name="planName"              placeholder="请输入关键字"              clearable            />          </el-form-item>          <el-form-item>            <el-button              type="primary"              icon="el-icon-search"              size="mini"              @click="getList"              >搜索</el-button            >            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"              >重置</el-button            ><el-button              type="primary"              icon="el-icon-plus"              size="mini"              @click="handleAdd()"              v-hasPermi="['core:checkplan:add']"              >新增任务</el-button            >          </el-form-item>        </el-form>        <!--    按纽    -->        <el-row :gutter="10" class="mb8">          <el-col :span="1.5">                      </el-col>          <right-toolbar            :showSearch.sync="showSearch"            @queryTable="getList"            :columns="columns"          ></right-toolbar>        </el-row>        <el-table          border          height="600"          size="small"          v-loading="loading"          :data="pageData"          @selection-change="handleSelectionChange"          row-key="id"          :tree-props="{ children: 'children' }"        >          <el-table-column            type="index"            label="序号"            width="80px"            v-if="columns[0].visible"          ></el-table-column>          <el-table-column            prop="planName"            label="计划名称"            v-if="columns[1].visible"          ></el-table-column>          <el-table-column            prop="planOfOrgName"            label="计划所属机构"            v-if="columns[4].visible"          >          </el-table-column>          <el-table-column            prop="planCreateOrgName"            label="计划创建机构"            v-if="columns[3].visible"          >          </el-table-column>          <el-table-column            prop="checkType"            label="检查类型"            v-if="columns[2].visible"          >            <template slot-scope="r"              >{{ getLabel(dict.type.check_type, `${r.row.checkType}`) }}            </template>          </el-table-column>          <el-table-column            prop="execOrgType"            label="检查机构类型"            v-if="columns[2].visible"          >            <template slot-scope="r"              >{{ getLabel(dict.type.sys_org_type, `${r.row.execOrgType}`) }}            </template>          </el-table-column>          <el-table-column            prop="checkOrgType"            label="受检机构类型"            width="120px"            v-if="columns[6].visible"          >            <template slot-scope="r"              >{{ getLabel(dict.type.sys_org_type, `${r.row.checkOrgType}`) }}            </template>          </el-table-column>          <el-table-column            prop="roleNames"            label="检查角色"            v-if="columns[6].visible"          >            <template slot-scope="scope">              <template v-for="item in splitRoleNames(scope.row.roleNames)">                {{ item }}                <br />              </template> </template          ></el-table-column>          <el-table-column            prop="planCycle"            label="检查周期"            width="80px"            v-if="columns[6].visible"          >            <template slot-scope="r"              >{{ getLabel(dict.type.check_cycle, `${r.row.planCycle}`) }}            </template>          </el-table-column>          <el-table-column            prop="count"            label="检查次数"            v-if="columns[6].visible"          ></el-table-column>          <el-table-column            prop="planStatus"            label="状态"            width="80px"            v-if="columns[6].visible"          >            <template slot-scope="r"              >{{ getLabel(dict.type.check_status, `${r.row.planStatus}`) }}            </template>          </el-table-column>          <el-table-column            prop="modifiedName"            label="修改人"            v-if="columns[6].visible"          ></el-table-column>          <el-table-column            prop="updateTime"            label="修改时间"            width="80px"            v-if="columns[6].visible"          >            <template slot-scope="scope">              <span>{{ formatTime(scope.row.updateTime, "YYYY-MM-DD") }}</span>            </template>          </el-table-column>          <el-table-column label="操作" min-width="200">            <template slot-scope="r">              <el-button                v-if="eqOrg(r.row)"                size="mini"                type="text"                icon="el-icon-edit-outline"                @click="onEdit(r.row.id)"                v-hasPermi="['core:checkplan:edit']"                >编辑</el-button              >              <el-button                v-if="eqOrg2(r.row)"                size="mini"                type="text"                icon="el-icon-delete"                @click="onDel(r.row.id, r.row.planName)"                v-hasPermi="['core:checkplan:remove']"                >删除</el-button              >              <el-button                size="mini"                type="text"                icon="el-icon-arrow-down"                v-if="checkCanPublish(r.row)"                @click="showDialogDistribute(r.row)"                v-hasPermi="['core:checkplan:distribute']"                >下发</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                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              >            </template>          </el-table-column>        </el-table>        <pagination          v-show="total > 0"          :total="total"          :page.sync="queryParams.pageNum"          :limit.sync="queryParams.pageSize"          @pagination="getList"        />      </el-col>    </el-row>    <dialog-edit      ref="editDialog"      @success="getList()"      :orgTypeOptions="dict.type.sys_org_type"      :ruleTypeOptions="dict.type.rule_type"    ></dialog-edit>    <DialogDistribute ref="dialogDistribute" @select="sel"></DialogDistribute>  </div></template><script>import DialogDistribute from "./distribute.vue";import OrgTree from "@/components/orgTree";import { mapState, mapMutations, mapGetters } from "vuex";import DialogEdit from "./dialog.edit";import * as api from "@/api/safetycheck/plan";import { statusOptions, getLabel } from "@/views/commonOption";import { listRole } from "@/api/system/role";export default {  name: "resumptionplan",  dicts: [    "sys_org_type",    "rule_type",    "check_cycle",    "check_status",    "check_type",  ],  components: {    DialogEdit,    OrgTree,    DialogDistribute,  },  data() {    const { params, query } = this.$route;    return {      isShow: false,      loading: false,      ids: [],      // 非单个禁用      single: true,      // 非多个禁用      multiple: true,      // 显示搜索条件      showSearch: true,      resumptionRoles: [],      total: 0,      queryParams: {        id: null,        planName: null,        checkRole: null,        planCycle: null,        planCreateOrgId: null,        checkType: null,        planOfOrgId: null,        execOrgType: null,        checkOrgType: null,        planStatus: null,        pageSize: 10,        pageNum: 1,        checkSub: false,        orgId: null,        ...query,      },      pageData: [],      // 列信息      columns: [        { key: 0, label: `序号`, visible: true },        { key: 1, label: `计划名称`, visible: true },        { key: 2, label: `计划类型`, visible: true },        { key: 3, label: `计划创建机构`, visible: true },        { key: 4, label: `计划所属机构`, visible: true },        { key: 5, label: `履职机构类型`, visible: true },        { key: 6, label: `履职角色`, visible: true },        { key: 7, label: `履职周期`, visible: true },        { key: 8, label: `履职次数`, visible: true },        { key: 9, label: `履职时间`, visible: true },        { key: 10, label: `修改人`, visible: true },        { key: 11, label: `计划状态`, visible: true },      ],    };  },  props: {},  watch: {},  computed: {    ...mapState([]),    ...mapGetters(["orgId", "orgName"]),  },  methods: {    ...mapMutations([]),    //判断是否跟当前用户同机构    eqOrg(row) {      // 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;    },    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      ) {        return true;      }      return false;    },    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) {      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;            });        })        .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;      }      return false;    },    splitRoleNames(val) {      if (val != null && val != undefined) {        return val.split(",");      } else {        return [];      }      // 使用逗号分割字符串,得到角色名称的数组    },    sel(selectList) {      this.loading = true;      api.distribute(selectList).then((response) => {        this.getList();        this.loading = false;      });    },    getRolesByOrg() {      let params = {        // orgId:this.queryParams.orgId      };      listRole(params).then((res) => {        // console.info(res);        this.resumptionRoles = res.rows;      });    },    getList() {      this.loading = true;      console.info(this.dict.type);      api        .list(this.queryParams)        .then((response) => {          this.pageData = response.rows;          this.total = response.total;          this.loading = false;        })        .catch(() => {          this.loading = false;        });    },    getDefaultKey(key) {      this.queryParams.orgId = key;      this.getList();    },    handleAdd(id, other = {}) {      id = null;      this.$refs.editDialog.show(id, other);    },    onEdit(id, other = {}) {      this.$refs.editDialog.show(id, other);    },    //开始撤回    chhuile(row) {      this.loading = true;      api.cheHui(row.id).then((response) => {        this.getList();        this.loading = false;      });    },    //已下发的显示撤回    chehui(row) {      if (row.distribute == 1 && row.planCreateOrgId == this.orgId) {        return true;      }      return false;    },    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;            });        })        .catch(() => {          // 用户点击了取消按钮          console.log("取消操作...");        });    },    // 多选框选中数据    handleSelectionChange(selection) {      this.ids = selection.map((item) => item.userId);      this.single = selection.length != 1;      this.multiple = !selection.length;    },    /** 重置按钮操作 */    resetQuery() {      this.resetForm("search");      // this.queryParams.orgId = undefined;      // this.$refs.tree.setCurrentKey(null);      this.getList();    },    //单选框状态改变    checkChange(state) {      this.queryParams.checkSub = state;      this.getList();    },    // 节点单击事件    clickTreeNode(data) {      this.queryParams.orgId = data.id;      this.getList();    },    getStatusLabel(value) {      return getLabel(statusOptions, value);    },    getLabel(options, value) {      return getLabel(options, value);    },    //apimark//  },  mounted() {},};</script><style lang="scss" scoped>.brand {}</style>
 |