|
@@ -57,43 +57,47 @@
|
|
|
<el-col :span="6" class="tr">
|
|
|
<el-form-item label="最小金额:">
|
|
|
<el-input type="number" class="width200" placeholder="请输入最小金额" v-model="data.params.min_amount"
|
|
|
- @keyup.enter.native="getList">
|
|
|
- <template #append>元</template>
|
|
|
- </el-input>
|
|
|
+ @keyup.enter.native="getList">
|
|
|
+ <template #append>元</template>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6" class="tr">
|
|
|
<el-form-item label="最大金额:">
|
|
|
<el-input type="number" class="width200" placeholder="请输入最大金额" v-model="data.params.max_amount"
|
|
|
@keyup.enter.native="getList">
|
|
|
- <template #append>元</template>
|
|
|
- </el-input>
|
|
|
+ <template #append>元</template>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="6" class="tr">
|
|
|
<el-form-item label="最小维护时间:">
|
|
|
- <el-input type="number" class="width220" placeholder="请输入最小维护时间" v-model="data.params.min_maintain_time_days"
|
|
|
- @keyup.enter.native="getList"><template #append>天</template> </el-input>
|
|
|
+ <el-input type="number" class="width220" placeholder="请输入最小维护时间"
|
|
|
+ v-model="data.params.min_maintain_time_days" @keyup.enter.native="getList"><template
|
|
|
+ #append>天</template> </el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6" class="tr">
|
|
|
<el-form-item label="最大维护时间:">
|
|
|
- <el-input type="number" class="width220" placeholder="请输入最大维护时间" v-model="data.params.max_maintain_time_days"
|
|
|
- @keyup.enter.native="getList"><template #append>天</template> </el-input>
|
|
|
+ <el-input type="number" class="width220" placeholder="请输入最大维护时间"
|
|
|
+ v-model="data.params.max_maintain_time_days" @keyup.enter.native="getList"><template
|
|
|
+ #append>天</template> </el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6" class="tr">
|
|
|
<el-form-item label="最小开发时间:">
|
|
|
- <el-input type="number" class="width220" placeholder="请输入最小开发时间" v-model="data.params.min_dev_time_days"
|
|
|
- @keyup.enter.native="getList"><template #append>天</template> </el-input>
|
|
|
+ <el-input type="number" class="width220" placeholder="请输入最小开发时间"
|
|
|
+ v-model="data.params.min_dev_time_days" @keyup.enter.native="getList"><template
|
|
|
+ #append>天</template> </el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6" class="tr">
|
|
|
<el-form-item label="最大开发时间:">
|
|
|
- <el-input type="number" class="width220" placeholder="请输入最大开发时间" v-model="data.params.max_dev_time_days"
|
|
|
- @keyup.enter.native="getList"><template #append>天</template> </el-input>
|
|
|
+ <el-input type="number" class="width220" placeholder="请输入最大开发时间"
|
|
|
+ v-model="data.params.max_dev_time_days" @keyup.enter.native="getList"><template
|
|
|
+ #append>天</template> </el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -144,19 +148,19 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="预估金额" prop="estimated_amount"
|
|
|
:rules="[{ required: true, message: '填写预估金额', trigger: 'blur' }]">
|
|
|
- <el-input type="number" v-model="data.form.estimated_amount" placeholder="填写预估金额" >
|
|
|
- <template #append>元</template>
|
|
|
- </el-input>
|
|
|
+ <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 type="number" v-model="data.form.pre_dev_time" placeholder="填写约定开发周期/天">
|
|
|
- <template #append>天</template>
|
|
|
- </el-input>
|
|
|
+ <template #append>天</template>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="约定维护周期/天" prop="pre_maintain_time">
|
|
|
<el-input type="number" v-model="data.form.pre_maintain_time" placeholder="填写约定维护周期/天">
|
|
|
- <template #append>天</template>
|
|
|
- </el-input>
|
|
|
+ <template #append>天</template>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="责任人" prop="responsibility_person_id"
|
|
|
:rules="[{ required: true, message: '填写责任人', trigger: 'blur' }]">
|
|
@@ -166,7 +170,8 @@
|
|
|
</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="选择参与人员" clearable filterable :style="{width: '70%'}">
|
|
|
+ <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>
|
|
@@ -216,65 +221,64 @@
|
|
|
<vuecmf-dialog width="800px" :model_value="data.dialogDetail.showDetail" :title="data.dialogDetail.titleDetail"
|
|
|
@close="closePage">
|
|
|
<template #content>
|
|
|
- <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>
|
|
|
+ <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>
|
|
|
<!-- 弹出项目进度新增页面-->
|
|
@@ -304,23 +308,26 @@
|
|
|
<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="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"
|
|
|
+ <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 v-show="data.formList.is_update_project_status" 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>
|
|
@@ -366,21 +373,23 @@
|
|
|
</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 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>
|
|
|
+ :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>
|
|
@@ -393,9 +402,8 @@
|
|
|
<vuecmf-dialog width="1200px" :model_value="data.contractDetail.showDetail" :title="data.contractDetail.titleDetail"
|
|
|
@close="closePage">
|
|
|
<template #content>
|
|
|
- <el-form :model="data.tableContract" inline-message="true">
|
|
|
- <el-table :data="data.tableContract" stripe style="width: 100%" label-width="120px"
|
|
|
- v-loading="data.contractDetail.isLoadingDetail">
|
|
|
+ <el-form :model="data.tableContract" inline-message="true" v-loading="data.contractDetail.isLoadingDetail">
|
|
|
+ <el-table :data="data.tableContract" stripe style="width: 100%" label-width="120px">
|
|
|
<el-table-column prop="title" label="合同名称" width="" />
|
|
|
<el-table-column prop="client" label="甲方/客户" width="" />
|
|
|
<el-table-column prop="developer" label="乙方/开发公司" width="" />
|
|
@@ -463,8 +471,8 @@
|
|
|
<el-form-item label="合同金额" prop="amount"
|
|
|
:rules="[{ required: true, message: '请填写合同金额', trigger: 'blur' }]">
|
|
|
<el-input type="number" v-model="data.formContract.amount" placeholder="合同金额">
|
|
|
- <template #append>元</template>
|
|
|
- </el-input>
|
|
|
+ <template #append>元</template>
|
|
|
+ </el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="合同签署日期" prop="date">
|
|
|
<el-date-picker v-model="data.formContract.date" type="date" placeholder="合同签署日期"
|
|
@@ -540,9 +548,9 @@
|
|
|
@close="closePage">
|
|
|
<template #content>
|
|
|
<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="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>
|
|
@@ -1070,11 +1078,11 @@ const submitContract = async (formEl: FormInstance | undefined) => {
|
|
|
console.log('error submit!');
|
|
|
return false;
|
|
|
}
|
|
|
- // 修改为分
|
|
|
- const contract = clone(data.formContract)
|
|
|
- contract.amount = getMoneyCent(data.formContract.amount)
|
|
|
+ // 修改为分
|
|
|
+ const contract = clone(data.formContract)
|
|
|
+ contract.amount = getMoneyCent(data.formContract.amount)
|
|
|
|
|
|
- data.contract.isLoading = true;
|
|
|
+ data.contract.isLoading = true;
|
|
|
let res = await Repertory.addcontract(contract);
|
|
|
data.contract.isLoading = false;
|
|
|
if (res.code != 0) {
|
|
@@ -1090,10 +1098,10 @@ const submitContract = async (formEl: FormInstance | undefined) => {
|
|
|
* 提交合同表单,编辑
|
|
|
*/
|
|
|
const submitContractUpdate = async () => {
|
|
|
- // 修改为分
|
|
|
- const contract = clone(data.formContract)
|
|
|
- contract.amount = getMoneyCent(data.formContract.amount)
|
|
|
-
|
|
|
+ // 修改为分
|
|
|
+ const contract = clone(data.formContract)
|
|
|
+ contract.amount = getMoneyCent(data.formContract.amount)
|
|
|
+
|
|
|
data.contract.isLoading = true;
|
|
|
let res = await Repertory.editcontract(contract);
|
|
|
data.contract.isLoading = false;
|
|
@@ -1216,8 +1224,6 @@ onMounted(async () => {
|
|
|
init();
|
|
|
});
|
|
|
</script>
|
|
|
-<style scoped lang="scss">
|
|
|
-.text {
|
|
|
+<style scoped lang="scss">.text {
|
|
|
text-align: right;
|
|
|
-}
|
|
|
-</style>
|
|
|
+}</style>
|