Newer
Older
Nanping_sponge_JXKH / src / views / waterloggedArea / detial / tableDalgo.vue
@liyingjing liyingjing on 25 Oct 6 KB 海绵绩效考个
<template>
  <div class="water-analysis-page">
    <div class="top">
      <el-form
        label-width="auto"
        :rules="rules"
        inline
        ref="ruleForm"
        :model="FormList"
        :disabled="typeList.type == 1"
      >
      <el-form-item label="内涝点:" style="width: 45%" prop="stCode" v-show="typeList.type == 2||typeList.type == 1">
            <el-input v-model="FormList.stName" disabled />
        </el-form-item>
        <el-form-item label="内涝点:" style="width: 45%" prop="stCode" v-show="typeList.type == 4 ">
          <el-select
            value-key="stCode"
            clearable
            v-model="FormList.stCode"
            class="m-3"
            placeholder="请选择内涝点"
            size="mini"
            style="width: 100%"
          >
            <el-option v-for="i in FormList.loggingList" :key="i.stCode" :label="i.stName" :value="i.stCode" />
          </el-select>
        </el-form-item>
        <el-form-item label="关联项目:" style="width: 45%" prop="projectNo">
          <el-select
            clearable
            v-model="FormList.projectNo"
            class="m-2"
            placeholder="请选择关联项目"
            size="mini"
            style="width: 100%"
            value-key="projectNo"
            @change="projectListChange"
          >
            <el-option v-for="i in projectList" :key="i.projectNo" :label="i.projectName" :value="i.projectNo" />
          </el-select>
        </el-form-item>
        <!-- <el-form-item label="内涝点状态:" style="width: 45%" prop="loggingRemoveStatus">
          <el-tag round :type="FormList.loggingRemoveStatus == 0 ? 'error' : 'success'">{{
            FormList.loggingRemoveStatus == 0 ? '未消除' : '已消除'
          }}</el-tag>
        </el-form-item> -->
        <el-form-item label="项目状态:" style="width: 45%" prop="projectStatus">
          <el-tag round :type="FormList.projectStatus == 0 ? 'error' : 'success'">{{
            FormList.projectStatus == 0 ? '未完工' : '已完工'
          }}</el-tag>
        </el-form-item>
<!-- 
        <el-form-item label="内涝点消除时间:" style="width: 45%" prop="loggingRemoveTime">
          <el-date-picker
            style="width: 100%"
            v-model="FormList.loggingRemoveTime"
            type="date"
            placeholder="请选择内涝点消除时间"
            format="YYYY-MM-DD"
            value-format="YYYY-MM-DD HH:mm:ss"
          />
        </el-form-item> -->

        <el-form-item label="项目完工时间:" style="width: 45%" prop="completeTime">
          <el-date-picker
            style="width: 100%"
            v-model="FormList.completeTime"
            type="date"
            placeholder="请选择项目完工时间"
            disabled
            format="YYYY-MM-DD"
            value-format="YYYY-MM-DD HH:mm:ss"
          />
        </el-form-item>
        <el-form-item label="附件:" style="width: 93%">
          <el-upload
            v-model:file-list="fileList1"
            class="upload-demo"
            style="width: 100%"
            action="/prod-api/system/upload"
            :headers="uploadHeader"
            multiple
            :on-preview="handlePreview"
            :before-remove="beforeRemove"
          >
            <el-button type="primary">选择文件</el-button>
          </el-upload>
        </el-form-item>
        <el-form-item label="备注" prop="remark" style="width: 95%">
          <el-input v-model="FormList.remark" type="textarea" placeholder="请输入内容" />
        </el-form-item>
      </el-form>
    </div>
  </div>
</template>
<script setup>
import { onMounted, defineEmits, reactive, defineProps, defineExpose } from 'vue';
import {
  waterloggingRelationProjectList,
  waterloggingRelationAdd,
  waterloggingRelationEdit,
  waterloggingRelationWaterloggingList,
} from '@/api/waterloggedArea';
import { getToken } from '@/utils/auth';
import { projectEstimateForm } from '@/utils/form';
import { ElMessage, ElMessageBox } from 'element-plus';
const { proxy } = getCurrentInstance();
// const { fund_source } = proxy.useDict('fund_source');
const uploadHeader = ref({
  Authorization: 'Bearer ' + getToken(),
});
const { typeList ,isComponent,waterloggingRelationWaterloggingListM} = defineProps(['typeList','isComponent','waterloggingRelationWaterloggingListM']);
console.log("isComponent", isComponent)
const emits = defineEmits();
defineExpose({ submit, closed, resetFiled });
const projectList  = ref([]);
let FormList = ref({});
const fileList1 = ref([]);
const rules = reactive({
  stCode: [{ required: true, message: '内涝点不能为空', trigger: ['blur', 'change'] }],
  projectNo: [{ required: true, message: '关联项目不能为空', trigger: ['blur', 'change'] }],
 
})
function handlePreview(file) {
  return ElMessageBox.confirm(`下载此文件: ${file.name}?`).then(
    () => window.open(file.url),
    () => false
  );
}

function submit() {
  proxy.$refs.ruleForm.validate(valid => {
    if (valid) {
      FormList.value.fileSaveRequestList = [];
      fileList1.value.forEach((i) => {
        if (i.hasOwnProperty("response")) {
          i.response.data.refType = "waterlogging_engineering";
          i.response.data.refField = "waterlogging_engineeringNode";
          FormList.value.fileSaveRequestList.push(i.response.data);
        } else {
          FormList.value.fileSaveRequestList.push(i);
        }
      });
      if (typeList.type == 4) {
        waterloggingRelationAdd({...FormList.value,year:isComponent.examineYear}).then(({ code }) => {
        // waterloggingRelationAdd({...FormList.value,...isComponent,year:isComponent.examineYear,...typeList}).then(({ code }) => {
          if (code == 200) {
            emits('onModalClose');
            waterloggingRelationWaterloggingListM()
          }
        });
      } else {
        waterloggingRelationEdit({...FormList.value,year:isComponent.examineYear,}).then(({ code }) => {
          if (code == 200) {
            emits('onModalClose');
            waterloggingRelationWaterloggingListM()
          }
        });
      }
    }
  });
}
function loadProjerctListData() {
  fileList1.value = typeList.fileList1;
  FormList.value = typeList
  FormList.value.completeTime=typeList.projectCompleteTime
  proxy.$refs.ruleForm.resetFields();
  waterloggingRelationProjectListM();
}
function resetFiled() {
  proxy.$refs.ruleForm.resetFields();
  fileList1.value = [];
}

function closed() {
  emits('onModalClose');
}
//工程和内涝点接口
async function waterloggingRelationProjectListM() {
  let { data } = await waterloggingRelationProjectList();
  projectList.value = data;
}

function projectListChange(v) {
 let arr= projectList.value.filter((k)=>{ 
    return v==k.projectNo; 
  })
  FormList.value.projectNo = v;
  FormList.value.projectStatus =arr[0]?. projectStatus;
  FormList.value.completeTime =arr[0]?. completeTime;
}
onMounted(() => {
  loadProjerctListData();
});
</script>
<style lang="scss" scoped>
.water-analysis-page {
  padding: 20px;
}
</style>