|
@@ -140,13 +140,19 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="预估金额" prop="estimated_amount"
|
|
|
:rules="[{ required: true, message: '填写预估金额', trigger: 'blur' }]">
|
|
|
- <el-input v-model="data.form.estimated_amount" placeholder="填写预估金额" />
|
|
|
+ <el-input type="number" v-model="data.form.estimated_amount" placeholder="填写预估金额" >
|
|
|
+ <template #append>元</template>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="约定开发周期/天" prop="pre_dev_time">
|
|
|
- <el-input v-model="data.form.pre_dev_time" placeholder="填写约定开发周期/天" />
|
|
|
+ <el-input type="number" v-model="data.form.pre_dev_time" placeholder="填写约定开发周期/天">
|
|
|
+ <template #append>天</template>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="约定维护周期/天" prop="pre_maintain_time">
|
|
|
- <el-input v-model="data.form.pre_maintain_time" placeholder="填写约定维护周期/天" />
|
|
|
+ <el-input type="number" v-model="data.form.pre_maintain_time" placeholder="填写约定维护周期/天">
|
|
|
+ <template #append>天</template>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="责任人" prop="responsibility_person_id"
|
|
|
:rules="[{ required: true, message: '填写责任人', trigger: 'blur' }]">
|
|
@@ -156,7 +162,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="参与人员" prop="participants_id"
|
|
|
:rules="[{ required: true, message: '填写参与人员', trigger: 'blur' }]">
|
|
|
- <el-select v-model="data.form.participants_id" multiple placeholder="选择参与人员">
|
|
|
+ <el-select v-model="data.form.participants_id" multiple placeholder="选择参与人员" clearable filterable :style="{width: '70%'}">
|
|
|
<el-option v-for="item in data.repertoryList" :key="item.id" :label="item.real_name"
|
|
|
:value="item.id" />
|
|
|
</el-select>
|
|
@@ -206,76 +212,72 @@
|
|
|
<vuecmf-dialog width="800px" :model_value="data.dialogDetail.showDetail" :title="data.dialogDetail.titleDetail"
|
|
|
@close="closePage">
|
|
|
<template #content>
|
|
|
- <el-form :model="data.form" label-width="120px" ref="formRef" v-loading="data.dialogDetail.isLoadingDetail">
|
|
|
- <el-form-column type="expand">
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <div style="position: fixed">
|
|
|
- <h3 class="mb20">项目详情表:</h3>
|
|
|
- <div m="4" class="ml20">
|
|
|
- <p class="mt10" m="t-0 b-2" style="display: flex;">
|
|
|
- 项目参与人员:{{ data.form.participants?.join(',') }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">预估金额:
|
|
|
- <money :money="data.form.estimated_amount" />
|
|
|
- </p>
|
|
|
- <p class="mt10" m="t-0 b-2">约定开发周期: {{ data.form.pre_dev_time ?
|
|
|
- data.form.pre_dev_time : '暂无数据' }} 天</p>
|
|
|
- <p class="mt10" m="t-0 b-2">约定维护周期: {{ data.form.pre_maintain_time ?
|
|
|
- data.form.pre_maintain_time : '暂无数据' }} 天</p>
|
|
|
- <p class="mt10" m="t-0 b-2">项目周期开始时间: {{ data.form.project_start_date ?
|
|
|
- data.form.project_start_date : '暂无数据' }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">项目周期结束时间: {{ data.form.project_end_date
|
|
|
- ? data.form.project_end_date : '暂无数据' }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">开发开始时间: {{ data.form.dev_start_date
|
|
|
- ? data.form.dev_start_date : '暂无数据' }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">开发结束时间: {{ data.form.dev_end_date
|
|
|
- ? data.form.dev_end_date : '暂无数据' }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">维护开始时间: {{ data.form.maintain_start_date ?
|
|
|
- data.form.maintain_start_date : '暂无数据' }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">维护结束时间: {{ data.form.maintain_end_date
|
|
|
- ? data.form.maintain_end_date : '暂无数据' }}</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <div style="height: 500px">
|
|
|
- <el-timeline>
|
|
|
- <el-timeline-item v-for="item in data.form.schedules" :timestamp="item.start_date"
|
|
|
- placement="top">
|
|
|
- <div v-for="items in data.stalist" class="ml5 mb10">
|
|
|
- <h3 v-if="item.status == items.key">{{ items.value }}</h3>
|
|
|
- </div>
|
|
|
- <el-card>
|
|
|
- <h3>{{ item.name }}</h3>
|
|
|
- <h4 class="mt5 mb10">{{ item.desc }}</h4>
|
|
|
- <p class=" mb10">{{ item.updater }}</p>
|
|
|
- <div class="text mb10">结束时间:{{ item.end_date }}</div>
|
|
|
- <div class="text">
|
|
|
- <el-button type="primary" @click="editSchedule(item)">编辑进度</el-button>
|
|
|
- <el-button type="danger" @click="deleteSchedule(item)">删除进度</el-button>
|
|
|
- </div>
|
|
|
- </el-card>
|
|
|
- </el-timeline-item>
|
|
|
- <el-timeline-item>
|
|
|
- <div class="flex justify-space-between mb-4 flex-wrap gap-4">
|
|
|
- <el-button type="primary" text
|
|
|
- @click="newSchedule(data.form)">新建进度</el-button>
|
|
|
- </div>
|
|
|
- </el-timeline-item>
|
|
|
- </el-timeline>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <div class="height20"></div>
|
|
|
- </el-form-column>
|
|
|
- </el-form>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="10">
|
|
|
+ <div style="position: fixed">
|
|
|
+ <h3 class="mb20">项目详情表:</h3>
|
|
|
+ <div m="4" class="ml20">
|
|
|
+ <p class="mt10" m="t-0 b-2" style="display: flex;">
|
|
|
+ 项目参与人员:{{ data.form.participants?.join(',') }}</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">预估金额:
|
|
|
+ <money :money="data.form.estimated_amount" />
|
|
|
+ </p>
|
|
|
+ <p class="mt10" m="t-0 b-2">约定开发周期: {{ data.form.pre_dev_time ?
|
|
|
+ data.form.pre_dev_time : '暂无数据' }} 天</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">约定维护周期: {{ data.form.pre_maintain_time ?
|
|
|
+ data.form.pre_maintain_time : '暂无数据' }} 天</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">项目周期开始时间: {{ data.form.project_start_date ?
|
|
|
+ data.form.project_start_date : '暂无数据' }}</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">项目周期结束时间: {{ data.form.project_end_date
|
|
|
+ ? data.form.project_end_date : '暂无数据' }}</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">开发开始时间: {{ data.form.dev_start_date
|
|
|
+ ? data.form.dev_start_date : '暂无数据' }}</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">开发结束时间: {{ data.form.dev_end_date
|
|
|
+ ? data.form.dev_end_date : '暂无数据' }}</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">维护开始时间: {{ data.form.maintain_start_date ?
|
|
|
+ data.form.maintain_start_date : '暂无数据' }}</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">维护结束时间: {{ data.form.maintain_end_date
|
|
|
+ ? data.form.maintain_end_date : '暂无数据' }}</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="14">
|
|
|
+ <div style="height: 500px">
|
|
|
+ <el-timeline>
|
|
|
+ <el-timeline-item v-for="item in data.form.schedules" :timestamp="item.start_date"
|
|
|
+ placement="top">
|
|
|
+ <div v-for="items in data.stalist" class="ml5 mb10">
|
|
|
+ <h3 v-if="item.status == items.key">{{ items.value }}</h3>
|
|
|
+ </div>
|
|
|
+ <el-card>
|
|
|
+ <h3>{{ item.name }}</h3>
|
|
|
+ <h4 class="mt5 mb10">{{ item.desc }}</h4>
|
|
|
+ <p class=" mb10">{{ item.updater }}</p>
|
|
|
+ <div class="text mb10">结束时间:{{ item.end_date }}</div>
|
|
|
+ <div class="text">
|
|
|
+ <el-button type="primary" @click="editSchedule(item)">编辑进度</el-button>
|
|
|
+ <el-button type="danger" @click="deleteSchedule(item)">删除进度</el-button>
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ </el-timeline-item>
|
|
|
+ <el-timeline-item>
|
|
|
+ <div class="flex justify-space-between mb-4 flex-wrap gap-4">
|
|
|
+ <el-button type="primary" text
|
|
|
+ @click="newSchedule(data.form)">新建进度</el-button>
|
|
|
+ </div>
|
|
|
+ </el-timeline-item>
|
|
|
+ </el-timeline>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="height20"></div>
|
|
|
</template>
|
|
|
</vuecmf-dialog>
|
|
|
<!-- 弹出项目进度新增页面-->
|
|
|
<vuecmf-dialog width="500px" :model_value="data.schedule.show" :title="data.schedule.title"
|
|
|
@close="closeSchedulePage">
|
|
|
<template #content>
|
|
|
- <el-form :model="data.formList" label-width="120px" ref="formRef" v-loading="data.schedule.isLoading">
|
|
|
+ <el-form :model="data.formList" label-width="140px" ref="formRef" v-loading="data.schedule.isLoading">
|
|
|
<el-form-item label="进度名称" prop="name"
|
|
|
:rules="[{ required: true, message: '请填写进度名称', trigger: 'blur' }]">
|
|
|
<el-input v-model="data.formList.name" placeholder="进度名称" />
|
|
@@ -298,27 +300,27 @@
|
|
|
<el-date-picker v-model="data.formList.end_date" type="end_date" placeholder=" 填写结束时间"
|
|
|
value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="状态" prop="status" :rules="[{ required: true, message: '请选择状态', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="进度状态" prop="status" :rules="[{ required: true, message: '请选择状态', trigger: 'blur' }]">
|
|
|
<el-select v-model="data.formList.status" placeholder="选择状态">
|
|
|
<el-option :label="item.value" :value="item.key" v-for="item in data.stalist" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="结束状态" prop="finish_project_status"
|
|
|
- :rules="[{ required: true, message: '请选择结束状态', trigger: 'blur' }]">
|
|
|
- <el-select v-model="data.formList.finish_project_status" placeholder="选择结束状态">
|
|
|
+ <el-form-item label="是否更新项目状态" prop="is_update_project_status"
|
|
|
+ :rules="[{ required: true, message: '请更新状态', trigger: 'change' }]">
|
|
|
+ <el-switch v-model="data.formList.is_update_project_status" class="ml-2" :active-value="1"
|
|
|
+ :inactive-value="0" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-show="data.formList.is_update_project_status" label="完成后项目状态" prop="finish_project_status"
|
|
|
+ :rules="[{ required: !!data.formList.is_update_project_status, message: '请选择完成状态', trigger: 'change' }]">
|
|
|
+ <el-select v-model="data.formList.finish_project_status" placeholder="选择完成状态">
|
|
|
<el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="进行中状态" prop="going_project_status">
|
|
|
+ <el-form-item v-show="data.formList.is_update_project_status" label="进行中项目状态" prop="going_project_status">
|
|
|
<el-select v-model="data.formList.going_project_status" placeholder="选择进行中状态">
|
|
|
<el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="是否更新状态" prop="is_update_project_status"
|
|
|
- :rules="[{ required: true, message: '请更新状态', trigger: 'blur' }]">
|
|
|
- <el-switch v-model="data.formList.is_update_project_status" class="ml-2" :active-value="1"
|
|
|
- :inactive-value="0" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949" />
|
|
|
- </el-form-item>
|
|
|
</el-form>
|
|
|
<div class="height20"></div>
|
|
|
</template>
|
|
@@ -331,7 +333,7 @@
|
|
|
<vuecmf-dialog width="500px" :model_value="data.scheduleup.show" :title="data.scheduleup.title"
|
|
|
@close="closeSchedulePage">
|
|
|
<template #content>
|
|
|
- <el-form :model="data.formList" label-width="120px" ref="formRef" v-loading="data.scheduleup.isLoading">
|
|
|
+ <el-form :model="data.formList" label-width="140px" ref="formRef" v-loading="data.scheduleup.isLoading">
|
|
|
<el-form-item label="进度名称" prop="name"
|
|
|
:rules="[{ required: true, message: '请填写进度名称', trigger: 'blur' }]">
|
|
|
<el-input v-model="data.formList.name" placeholder="进度名称" />
|
|
@@ -359,22 +361,22 @@
|
|
|
<el-option :label="item.value" :value="item.key" v-for="item in data.stalist" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="结束状态" prop="finish_project_status"
|
|
|
- :rules="[{ required: true, message: '请选择结束状态', trigger: 'blur' }]">
|
|
|
- <el-select v-model="data.formList.finish_project_status" placeholder="选择结束状态">
|
|
|
- <el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="进行中状态" prop="going_project_status">
|
|
|
- <el-select v-model="data.formList.going_project_status" placeholder="选择进行中状态">
|
|
|
- <el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="是否更新状态" prop="is_update_project_status"
|
|
|
- :rules="[{ required: true, message: '请更新状态', trigger: 'blur' }]">
|
|
|
- <el-switch v-model="data.formList.is_update_project_status" class="ml-2" :active-value="1"
|
|
|
- :inactive-value="0" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949" />
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item label="是否更新项目状态" prop="is_update_project_status"
|
|
|
+ :rules="{ required: true, message: '请更新状态', trigger: 'blur' }">
|
|
|
+ <el-switch v-model="data.formList.is_update_project_status" class="ml-2" :active-value="1"
|
|
|
+ :inactive-value="0" style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-show="data.formList.is_update_project_status" label="结束后项目状态" prop="finish_project_status"
|
|
|
+ :rules="{ required: data.formList.is_update_project_status, message: '请选择结束状态', trigger: 'change' }">
|
|
|
+ <el-select v-model="data.formList.finish_project_status" placeholder="选择结束状态">
|
|
|
+ <el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-show="data.formList.is_update_project_status" label="进行中项目状态" prop="going_project_status">
|
|
|
+ <el-select v-model="data.formList.going_project_status" placeholder="选择进行中状态">
|
|
|
+ <el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
<div class="height20"></div>
|
|
|
</template>
|
|
@@ -531,13 +533,13 @@
|
|
|
<vuecmf-dialog width="500px" :model_value="data.statusDialog.show" :title="data.statusDialog.title"
|
|
|
@close="closePage">
|
|
|
<template #content>
|
|
|
- <el-form :model="data.formStatus" label-width="120px" ref="formRef" v-loading="data.statusDialog.isLoading">
|
|
|
- <el-form-item label="状态名" prop="value">
|
|
|
+ <el-form :model="data.formStatus" label-width="150px" ref="formRef" v-loading="data.statusDialog.isLoading">
|
|
|
+ <el-form-item label="状态值(英文)" prop="key">
|
|
|
+ <el-input v-model="data.formStatus.key" placeholder="状态值" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态名(显示名)" prop="value">
|
|
|
<el-input v-model="data.formStatus.value" placeholder="填写状态名" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="状态值" prop="key">
|
|
|
- <el-input v-model="data.formStatus.key" placeholder="状态值" />
|
|
|
- </el-form-item>
|
|
|
</el-form>
|
|
|
<div class="height20"></div>
|
|
|
</template>
|
|
@@ -773,7 +775,7 @@ const newFormlist = () => {
|
|
|
updater_id: '',
|
|
|
start_date: null,
|
|
|
end_date: null,
|
|
|
- is_update_project_status: true,
|
|
|
+ is_update_project_status: 1,
|
|
|
status: '',
|
|
|
finish_project_status: '',
|
|
|
going_project_status: '',
|