|
@@ -3,7 +3,7 @@
|
|
|
<!-- 功能区 -->
|
|
|
<el-card class="box-card">
|
|
|
<el-row>
|
|
|
- <el-col :span="12">
|
|
|
+ <el-col :span="6">
|
|
|
<el-text class="mx-1">关键词:</el-text>
|
|
|
|
|
|
<el-input class="width160" placeholder="请输入关键词" v-model="data.params.keyword"
|
|
@@ -17,20 +17,81 @@
|
|
|
</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="12" class="tr">
|
|
|
+ <el-form-item label="创建时间:">
|
|
|
+ <el-date-picker v-model="data.params.create_time_begin_time" type="datetime" placeholder="开始创建时间"
|
|
|
+ value-format="YYYY-MM-DD hh:mm:ss " />
|
|
|
+ <div class="ml5 mr5">To</div>
|
|
|
+ <el-date-picker v-model="data.params.create_time_end_time" type="datetime" placeholder="结束创建时间"
|
|
|
+ value-format="YYYY-MM-DD hh:mm:ss" />
|
|
|
+ <el-button type="primary" class="ml10" @click="getList">
|
|
|
+ <el-icon>
|
|
|
+ <ele-Search />
|
|
|
+ </el-icon>
|
|
|
+ 查询
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6" class="tr">
|
|
|
<el-button type="primary" @click="addstatus">新增状态</el-button>
|
|
|
<el-button type="primary" @click="editstatus">更新状态</el-button>
|
|
|
<el-button type="primary" @click="addPage">新增</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-row class="mt10">
|
|
|
- <el-col :span="12" class="tr">
|
|
|
- <el-form-item label="状态:" prop="change_type">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-text class="mx-1">负责人:</el-text>
|
|
|
+ <el-select class="width160" v-model="data.params.responsibility_person_id" clearable
|
|
|
+ placeholder="请选择负责人" @change="getList">
|
|
|
+ <el-option :label="item.real_name" :value="item.id" v-for="item in data.repertoryList" />
|
|
|
+ </el-select>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" class="tr">
|
|
|
+ <el-form-item label="状态:">
|
|
|
<el-select v-model="data.params.status" multiple placeholder="选择状态" @change="getList"
|
|
|
- style="width: 300px">
|
|
|
+ style="width: 180px">
|
|
|
<el-option :label="item[1]" :value="item[0]" v-for="item in statusList.data" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="6" class="tr">
|
|
|
+ <el-form-item label="最小金额:">
|
|
|
+ <el-input class="width160" placeholder="请输入最小金额" v-model="data.params.min_amount"
|
|
|
+ @keyup.enter.native="getList"> </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" class="tr">
|
|
|
+ <el-form-item label="最大金额:">
|
|
|
+ <el-input class="width160" placeholder="请输入最大金额" v-model="data.params.max_amount"
|
|
|
+ @keyup.enter.native="getList"> </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6" class="tr">
|
|
|
+ <el-form-item label="最小维护时间:">
|
|
|
+ <el-input class="width160" placeholder="请输入最小维护时间" v-model="data.params.min_maintain_time_days"
|
|
|
+ @keyup.enter.native="getList"> </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" class="tr">
|
|
|
+ <el-form-item label="最大维护时间:">
|
|
|
+ <el-input class="width160" placeholder="请输入最大维护时间" v-model="data.params.max_maintain_time_days"
|
|
|
+ @keyup.enter.native="getList"> </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" class="tr">
|
|
|
+ <el-form-item label="最小开发时间:">
|
|
|
+ <el-input class="width160" placeholder="请输入最小开发时间" v-model="data.params.min_dev_time_days"
|
|
|
+ @keyup.enter.native="getList"> </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" class="tr">
|
|
|
+ <el-form-item label="最大开发时间:">
|
|
|
+ <el-input class="width160" placeholder="请输入最大开发时间" v-model="data.params.max_dev_time_days"
|
|
|
+ @keyup.enter.native="getList"> </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
</el-card>
|
|
|
<!-- 主体区 -->
|
|
@@ -87,12 +148,10 @@
|
|
|
:rules="[{ required: true, message: '填写预估金额', trigger: 'blur' }]">
|
|
|
<el-input v-model="data.form.estimated_amount" placeholder="填写预估金额" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="约定开发周期" prop="pre_dev_time"
|
|
|
- :rules="[{ required: true, message: '填写约定开发周期', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="约定开发周期" prop="pre_dev_time">
|
|
|
<el-input v-model="data.form.pre_dev_time" placeholder="填写约定开发周期" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="约定维护周期" prop="pre_maintain_time"
|
|
|
- :rules="[{ required: true, message: '填写约定维护周期', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="约定维护周期" prop="pre_maintain_time">
|
|
|
<el-input v-model="data.form.pre_maintain_time" placeholder="填写约定维护周期" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="责任人" prop="responsibility_person_id"
|
|
@@ -117,36 +176,30 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="项目开始时间" prop="project_start_date"
|
|
|
- :rules="[{ required: true, message: '填写项目开始时间', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="项目开始时间" prop="project_start_date">
|
|
|
<el-date-picker v-model="data.form.project_start_date" type="project_start_date"
|
|
|
placeholder=" 填写项目开始时间" value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="项目结束时间" prop="project_end_date"
|
|
|
- :rules="[{ required: true, message: '填写项目结束时间', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="项目结束时间" prop="project_end_date">
|
|
|
|
|
|
<el-date-picker v-model="data.form.project_end_date" type="project_end_date"
|
|
|
placeholder="填写项目结束时间" value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="开发开始时间" prop="dev_start_date"
|
|
|
- :rules="[{ required: true, message: '填写开发开始时间', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="开发开始时间" prop="dev_start_date">
|
|
|
<el-date-picker v-model="data.form.dev_start_date" type="dev_start_date"
|
|
|
placeholder=" 填写开发开始时间" value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="开发结束时间" prop="dev_end_date"
|
|
|
- :rules="[{ required: true, message: '填写开发结束时间', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="开发结束时间" prop="dev_end_date">
|
|
|
<el-date-picker v-model="data.form.dev_end_date" type="dev_end_date" placeholder=" 填写开发结束时间"
|
|
|
value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="维护开始时间" prop="maintain_start_date"
|
|
|
- :rules="[{ required: true, message: '填写维护开始时间', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="维护开始时间" prop="maintain_start_date">
|
|
|
<el-date-picker v-model="data.form.maintain_start_date" type="maintain_start_date"
|
|
|
placeholder=" 填写维护开始时间" value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="维护结束时间" prop="maintain_end_date"
|
|
|
- :rules="[{ required: true, message: '填写维护结束时间', trigger: 'blur' }]">
|
|
|
+ <el-form-item label="维护结束时间" prop="maintain_end_date">
|
|
|
<el-date-picker v-model="data.form.maintain_end_date" type="maintain_end_date"
|
|
|
placeholder=" 填写维护结束时间" value-format="YYYY-MM-DD" format="YYYY-MM-DD" />
|
|
|
</el-form-item>
|
|
@@ -172,16 +225,22 @@
|
|
|
<div style="position: fixed">
|
|
|
<h3 class="mb20">项目详情表:</h3>
|
|
|
<div m="4" class="ml20">
|
|
|
- <p class="mt10" m="t-0 b-2">项目参与人员: {{ data.form.responsibility_person }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">预估金额: {{ data.form.estimated_amount / 100 }} 元</p>
|
|
|
- <p class="mt10" m="t-0 b-2">约定开发周期: {{ data.form.pre_dev_time }} 天</p>
|
|
|
- <p class="mt10" m="t-0 b-2">约定维护周期: {{ data.form.pre_maintain_time }}天</p>
|
|
|
- <p class="mt10" m="t-0 b-2">项目周期开始时间: {{ data.form.project_start_date }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">项目周期结束时间: {{ data.form.project_end_date }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">开发开始时间: {{ data.form.dev_start_date }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">开发结束时间: {{ data.form.dev_end_date }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">维护开始时间: {{ data.form.maintain_start_date }}</p>
|
|
|
- <p class="mt10" m="t-0 b-2">维护结束时间: {{ data.form.maintain_end_date }}</p>
|
|
|
+ <p class="mt10" m="t-0 b-2" style="display: flex;">项目参与人员:
|
|
|
+ <div v-for="item in data.form.participants" >
|
|
|
+ {{ item }} ,
|
|
|
+ </div>
|
|
|
+ </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 }} 天,</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">约定维护周期: {{ data.form.pre_maintain_time }}天,</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">项目周期开始时间: {{ data.form.project_start_date }},</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">项目周期结束时间: {{ data.form.project_end_date }},</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">开发开始时间: {{ data.form.dev_start_date }},</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">开发结束时间: {{ data.form.dev_end_date }},</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">维护开始时间: {{ data.form.maintain_start_date }},</p>
|
|
|
+ <p class="mt10" m="t-0 b-2">维护结束时间: {{ data.form.maintain_end_date }},</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-col>
|
|
@@ -190,17 +249,19 @@
|
|
|
<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>{{ item.updater }}</p>
|
|
|
+ <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">
|
|
@@ -254,6 +315,11 @@
|
|
|
<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"
|
|
@@ -282,10 +348,10 @@
|
|
|
<el-table-column prop="start_date" label="合同开始日期" width="" />
|
|
|
<el-table-column prop="end_date" label="合同结束日期" width="" />
|
|
|
<el-table-column prop="amount" label="合同金额/元" width="">
|
|
|
- <template #default="{ row }">
|
|
|
- <money :money="row.amount" />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ <template #default="{ row }">
|
|
|
+ <money :money="row.amount" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="attachment" label="附件" width="">
|
|
|
<template #default="scope">
|
|
|
<el-link :href="scope.row.attachment" target="_blank" type="primary">查看附件</el-link>
|
|
@@ -379,7 +445,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="data.formStatus.key" prop="value">
|
|
|
- <el-input v-model="data.formStatus.value" placeholder="新状态名" :style="{width: '200px'}" />
|
|
|
+ <el-input v-model="data.formStatus.value" placeholder="新状态名" :style="{ width: '200px' }" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div class="height20"></div>
|
|
@@ -418,6 +484,15 @@ let data = reactive({
|
|
|
page: 1, //当前页面
|
|
|
keyword: '', //关键字
|
|
|
status: [], //状态
|
|
|
+ responsibility_person_id: '',//负责人id
|
|
|
+ create_time_begin_time: '',//开始创建时间
|
|
|
+ create_time_end_time: '',//结束创建时间
|
|
|
+ min_amount: '',//最小金额
|
|
|
+ max_amount: '',//最大金额
|
|
|
+ min_dev_time_days: '',//最小开发时间/天
|
|
|
+ max_dev_time_days: '',//最大开发时间/天
|
|
|
+ min_maintain_time_days: '',//最小维护时间/天
|
|
|
+ max_maintain_time_days: '',//最大维护时间/天
|
|
|
},
|
|
|
//请求合同查询的参数
|
|
|
contractParams: {
|
|
@@ -634,6 +709,15 @@ const getList = async () => {
|
|
|
},
|
|
|
keyword: data.params.keyword,
|
|
|
status: data.params.status,
|
|
|
+ responsibility_person_id: data.params.responsibility_person_id,
|
|
|
+ create_time_begin_time: data.params.create_time_begin_time,
|
|
|
+ create_time_end_time: data.params.create_time_end_time,
|
|
|
+ min_amount: data.params.min_amount,
|
|
|
+ max_amount: data.params.max_amount,
|
|
|
+ min_dev_time_days: data.params.min_dev_time_days,
|
|
|
+ max_dev_time_days: data.params.max_dev_time_days,
|
|
|
+ min_maintain_time_days: data.params.min_maintain_time_days,
|
|
|
+ max_maintain_time_days: data.params.max_maintain_time_days,
|
|
|
});
|
|
|
data.loading = false;
|
|
|
if (res.code != 0) {
|