多体系建设信息化条统-前端
祖安之光
22 hours ago 4e94f50e54271f1be793a9f417cf7e7cc4a13df5
src/views/work/marketingManagement/customerList/need/components/editDialog.vue
@@ -3,15 +3,15 @@
    <el-dialog
        v-model="dialogVisible"
        :title="title"
        width="800px"
        width="1150px"
        :before-close="handleClose"
        :close-on-press-escape="false"
        :close-on-click-modal="false"
    >
      <el-form :model="state.form" size="default" ref="busRef" :rules="state.rules"  label-position="right" label-width="130">
        <el-row :gutter="24">
          <el-col :span="24">
            <el-form-item label="企业名称:" prop="companyId" v-if="state.isAdmin">
          <el-col :span="12">
            <el-form-item label="单位名称:" prop="companyId" v-if="state.isAdmin">
              <el-select v-model="state.form.companyId" placeholder="请选择" filterable clearable style="width: 100%" :disabled="title == '查看' || title == '编辑' || !state.isAdmin" @change="selectValueCom">
                <el-option
                    v-for="item in state.companyList"
@@ -22,6 +22,15 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
          <el-form-item label="年份:" prop="year" >
            <el-date-picker
              :disabled="title == '查看'"
              v-model="state.form.year"
              type="year"
              value-format="YYYY"/>
          </el-form-item>
        </el-col>
        </el-row>
        <el-row :gutter="24">
          <el-col :span="24">
@@ -42,14 +51,14 @@
              <div style="display: flex;width: 100%;">
                <el-table :data="state.form.customerRecordNeeds" :border="true" >
                  <el-table-column type="index" label="序号"  align="center"></el-table-column>
                  <el-table-column label="顾客名称" prop="customerName" align="center" width="150">
                  <el-table-column label="顾客名称" prop="customerName" align="center" >
                    <template  #default="{row,$index}">
                      <el-form-item :prop="'customerRecordNeeds.' + '[' + $index + ']' + 'customerName'" :rules="state.rules.customerName">
                        <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="row.customerName" placeholder="请输入"></el-input>
                      </el-form-item>
                    </template>
                  </el-table-column>
                  <el-table-column label="顾客需求" prop="customerNeed" align="center" width="150">
                  <el-table-column label="顾客需求" prop="customerNeed" align="center" >
                    <template #default="{row,$index}">
                      <div v-for="(i,index) in row.expectContentMesses" :key="index">
                        <el-form-item :prop="'customerRecordNeeds.' + '[' + $index + '].' +'expectContentMesses.' + '[' + index + ']' + '.customerNeed'" :rules="state.rules.customerNeed">
@@ -71,7 +80,7 @@
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column label="登记人" prop="registrantId" align="center" width="150">
                  <el-table-column label="登记人" prop="registrantId" align="center" >
                    <template #default="{row,$index}">
                      <div v-for="(i,index) in row.expectContentMesses" :key="index">
                        <el-form-item :prop="'customerRecordNeeds.' + '[' + $index + '].' +'expectContentMesses.' + '[' + index + ']' + '.registrantId'" :rules="state.rules.registrantId">
@@ -87,7 +96,7 @@
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column label="处理部门" prop="disposeId" align="center" width="150">
                  <el-table-column label="处理部门" prop="disposeId" align="center" >
                    <template #default="{row,$index}">
                      <div v-for="(i,index) in row.expectContentMesses" :key="index">
                        <el-form-item :prop="'customerRecordNeeds.' + '[' + $index + '].' +'expectContentMesses.' + '[' + index + ']' + '.disposeId'" :rules="state.rules.disposeId">
@@ -108,7 +117,7 @@
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column label="处理结果" prop="disposeMess" align="center" width="150">
                  <el-table-column label="处理结果" prop="disposeMess" align="center" >
                    <template #default="{row,$index}">
                      <div v-for="(i,index) in row.expectContentMesses" :key="index">
                        <el-form-item :prop="'customerRecordNeeds.' + '[' + $index + '].' +'expectContentMesses.' + '[' + index + ']' + '.disposeMess'" :rules="state.rules.disposeMess">
@@ -117,7 +126,7 @@
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column label="备注" prop="remark" align="center" width="150">
                  <el-table-column label="备注" prop="remark" align="center" >
                    <template #default="{row,$index}">
                      <div v-for="(i,index) in row.expectContentMesses" :key="index">
                        <el-form-item :prop="'customerRecordNeeds.' + '[' + $index + '].' +'expectContentMesses.' + '[' + index + ']' + '.remark'" :rules="state.rules.remark">
@@ -170,11 +179,13 @@
  form: {
    id: '',
    companyId: null,
    year: '',
    recordName: null,
    customerRecordNeeds:[],
  },
  rules: {
    companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
    year: [{ required: true, message: '请选择年份', trigger: 'blur' }],
    recordName: [{ required: true, message: '请输入记录名称', trigger: 'blur' }],
    customerName: [{required: true, message: "", trigger: "blur"}],
    customerNeed: [{required: true, message: "", trigger: "blur"}],
@@ -204,6 +215,7 @@
    state.form.companyName = value.companyName
    state.companyList = companyList
  }
  state.form.year = new Date().getFullYear().toString()
  title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
  if(type === 'edit' || type === 'review') {
    state.form = JSON.parse(JSON.stringify(value));
@@ -232,8 +244,16 @@
  dialogVisible.value = true;
}
const onSubmit = async () => {
  console.log('state.form',state.form)
  let dataDemo = JSON.parse(JSON.stringify(state.form))
  let flag = false
  for (const i of dataDemo.customerRecordNeeds) {
    if(!i.expectContentMesses[0].needSource || i.expectContentMesses[0].needSource.length ==0){
      ElMessage.warning('请完善需求来源')
      flag = true
      return
    }
  }
  if(flag) return
  let dataArr = []
  dataArr = dataDemo.customerRecordNeeds.map(item => {
    return {
@@ -328,6 +348,7 @@
    companyId: null,
    recordName: null,
    customerRecordNeeds:[],
    year: '',
  }
  state.companyList = []
}