Newer
Older
Nanping_sponge_GCGL / src / views / project / projectInformation / todoDon.vue
@liyingjing liyingjing on 25 Oct 2023 9 KB 海绵工程管理
<template>
  <div class="water-analysis-page">
    <el-table
      :key="isFlag"
      :data="tableData"
      v-loading="tableLoading"
      stripe
      max-height="500"
    >
      <el-table-column type="index" width="55" label="序号" align="center" />
      <el-table-column
        :label="i.lable"
        align="center"
        :prop="i.value"
        show-overflow-tooltip
        v-for="i in projectInformationCloum"
      >
      <template #default="{ row }" v-if="i.value == 'projectName'">
          <span @click="onCheck(row, 2, '详情')" class="projectName">
            {{ row.projectName }}</span
          >
        </template>
        <template #default="{ row }" v-if="i.value == 'projectStatus'">
          <dict-tag :options="project_status" :value="row.projectStatus" />
        </template>
        <template #default="{ row }" v-if="i.value == 'valuation'">
          {{ row.valuation|| 0 }}(万元)
        </template>
        <template #default="{ row }" v-if="i.value == 'projectProgress'">
          {{ row.projectProgress|| 0}}%
        </template>
        <template #default="{row}" v-if="i.value == 'completeTotalInvest'">
        {{ row.completeTotalInvest|| 0}}万元
      </template>
      <template #default="{row}" v-if="i.value == 'completeSpongeInvest'">
        {{ row.completeSpongeInvest|| 0}}万元
      </template>
      <template #default="{row}" v-if="i.value == 'startTime'">
        {{row.startTime.substring(0, 10)  }}
      </template>
      <template #default="{row}" v-if="i.value == 'status'">
        <span style="color: red" v-if="row.fromStatus">驳回</span>
          <dict-tag v-else :options="dangerous_status" :value="row.status" />
      </template>
      <template #default="{ row }" v-if="i.value == 'constructUnit'">
          <dict-tag :options="unit_list" :value="row.constructUnit" />
          {{ unit_listM(row.constructUnit) }}
        </template>
      </el-table-column>
      <el-table-column fixed="right" label="操作" width="280" align="center">
        <template #default="{ row }">
          <el-button
            link
            type="primary"
            icon="View"
            @click="onCheck(row, 2, '详情')"
            >详情</el-button
          >
          <!-- <el-button link type="success" plain icon="DArrowRight" @click="onCheck(row, 6, '转交')"
            >转交</el-button
          > -->
          <el-button
            v-show="FormList.belong == 1"
            link
            type="warning"
            icon="Edit"
            @click="onCheck(row, 5, '修改')"
            >修改</el-button
          >
          <el-button
            v-show="FormList.belong == 1"
            icon="Delete"
            link
            type="danger"
            @click="onCheck(row, 4, '删除')"
            >删除</el-button
          >

          <!-- <el-button link type="danger" @click="onCheck(row, 3)">删除</el-button> -->
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="FormList.totals > 0"
      :total="FormList.totals"
      v-model:page="FormList.pageNum"
      v-model:limit="FormList.pageSize"
      @pagination="getInfoList(FormList)"
    />
  </div>
  <el-dialog
    v-model="visible"
    :title="'项目信息' + title"
    :modal-append-to-body="false"
    :close-on-click-modal="false"
    width="92%"
  >
    <tableDalgo
      ref="tableDalgoRef"
      @onModalClose="onModalClose"
      v-if="visible"
    ></tableDalgo>
    <template #footer>
      <div class="dialog-footer">
        <el-button v-show="typeList.type != 2" type="primary" @click="submit"
          >保存</el-button
        >
        <el-button @click="visible = false">关闭</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog
    v-model="editvisible"
    title="项目信息修改"
    :modal-append-to-body="false"
    :close-on-click-modal="false"
    width="80%"
  >
    <addDalg
      ref="tableDalgoRef"
      :typeList="typeList"
      @onModalClose="onModalClose"
      v-if="editvisible"
    ></addDalg>
    <template #footer>
      <div class="dialog-footer">
        <el-button v-show="typeList.type != 2" type="primary" @click="submit"
          >保存</el-button
        >
        <el-button @click="editvisible = false">关闭</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog
      v-model="zjtdialgo"
      title="项目信息转交"
      :modal-append-to-body="false"
      :close-on-click-modal="false"
      width="50%"
    >
      <el-form label-width="auto" ref="ruleForm" :model="FormList" :key="isKey">
        <el-form-item label="接收人:" props="dealUsers">
          <el-select
            clearable
            v-model="FormList.dealUsers"
            style="width: 100%"
            class="m-2"
            placeholder="指定处理人"
            size="mini"
          >
            <el-option
              v-for="item in personList"
              :key="item.userId"
              :label="item.nickName"
              :value="item.userId"
            />
          </el-select>
        </el-form-item>

        <el-form-item label="转交原因:" props="supplement">
          <el-input
            v-model="FormList.supplement"
            type="textarea"
            placeholder="转交原因"
          />
        </el-form-item>
        <el-form-item label="项目资料是否已经上传平台:" props="supplement">
          <el-radio-group v-model="FormList.Istable" class="ml-4">
            <el-radio label="1" size="large">是</el-radio>
            <el-radio label="2" size="large">否</el-radio>
          </el-radio-group>
        </el-form-item>
      </el-form>
      <template #footer>
        <el-button type="primary" @click="contentClick(true)">保存</el-button>
        <el-button @click="zjtdialgo = false">关闭</el-button>
      </template>
    </el-dialog>
</template>
<script setup>
import { defineExpose, provide } from "vue";
import {
  getInfo,
  projectInfoDelete,
  projectInfoGet,
  projectInfoAdd,
} from "@/api/projectInformation";
import { projectInformationCloum } from "@/utils/cloums";
import {
    userList,
  } from "@/api/projectInformation";
const personList = ref([]);
import { ElMessage, ElMessageBox } from "element-plus";
import tableDalgo from "./tableDalgo.vue";
import { downloadBlob, formatDate, formatMonths } from "@/utils/projectTable";
import emgBox from "@/utils/ElMessageBox";
const ruleForm = ref(null);
const { proxy } = getCurrentInstance();
const {
  project_status,
  unit_property,
  credit_line,
  dangerous_status,
} = proxy.useDict(
  "project_status",
  "unit_property",
  "credit_line",
  "dangerous_status"
);
import { projectCompany } from "@/api/projectTable";
import addDalg from "./addDalg.vue";

let visible = ref(false);
let isFlag = ref(1);
let tableDalgoRef = ref();
const title = ref();
let zjtdialgo = ref(false);
const FormList = ref({
  pageNum: 1,
  pageSize: 10,
  belong: "1",
});
const unit_list = ref([]);
const editvisible = ref(false);
//动态组件
let dataForm = reactive({
  date: formatMonths(new Date()),
  tableData: "",
  tableDateTwo: "",
  tableLoading: true,
});
let { date, tableData, tableDateTwo, tableLoading } = toRefs(dataForm);
//获取列表数据
const getInfoList = async (prams) => {
  FormList.value.belong = prams.belong;
  tableLoading.value = true;
  let { data, total } = await getInfo(prams);
  tableData.value = data;
  FormList.value.totals = total;
  tableLoading.value = false;
};
defineExpose({ getInfoList });
let typeList = ref({});
const onCheck = (row, ty, t) => {
  title.value = t;
  projectInfoGet(row.id).then(({ code, data }) => {
    if (code == 200) {
      typeList.value = { ...data, type: ty };
      if (ty == 3 || ty == 2) {
        visible.value = true;
      } else if (ty == 4) {
        ElMessageBox.confirm(`您确定删除项目信息吗?`, '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
             })
    .then(() => {
      projectInfoDeleteM(typeList.value)
    })
      } else if (ty == 5) {
        editvisible.value = true;
      }
      else if (ty == 6) {
        zjtdialgo.value = true;
      }
    }
  });
};
provide("typeList1", typeList);
//删除
const projectInfoDeleteM = async (id) => {
  let { dealUsers, workflowUserId } = id;
  if (dealUsers?.length > 0 && Array.isArray(dealUsers)) {
    typeList.value.dealUsers = dealUsers?.join(",");
  }
  if (workflowUserId?.length > 0 && Array.isArray(workflowUserId)) {
    typeList.value.workflowUserId = workflowUserId.join(",");
  }
  typeList.value.operation ='delete'
  typeList.value.content = JSON.stringify([
    { type: "new", projectInfo: { ...typeList.value } },
    { type: "old", projectInfo: { ...typeList } },
  ]);
  projectInfoAdd(typeList.value).then(({ code }) => {
    if (code == 200) {
      ElMessage({
            message: "删除成功",
            type: "success",
          });
      getInfoList(FormList.value);
    }
  });
};
//撤回操作
const Returncnfiorm = async (id) => {
  let { code } = await projectInfoDelete(id);
};
function onModalClose() {
  visible.value = false;
  editvisible.value = false;
  getInfoList(FormList.value);
}
function submit() {
  tableDalgoRef.value.submit();
}
const projectCompanyM = async () => {
  let { data } = await projectCompany();
  unit_list.value = data;
};
function unit_listM(v) {
  console.log("unit_listunit_list", unit_list.value, v);
  let arr = unit_list.value.filter((i) => {
    return v == i.id;
  });
  return arr[0]?.makeCompanyName;
}

const userListM = async () => {
    let { data } = await userList();
    personList.value = data;
  };
// 转交
function contentClick(v){ 

}
onMounted(() => {
  projectCompanyM();
  userListM()
});
</script>
<style lang="scss" scoped>
.water-analysis-page {
  padding: 20px;
  height: 90vh;
  ::v-deep .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
    font-size: 18px;
    color: rgb(255, 255, 255);
    background-color: rgb(22, 132, 252);
    border-left: 1px solid rgb(22, 132, 252);
  }
}
</style>