1、添加公司员工管理关联系统用户表

2、添加项目延期字段,缺乏逻辑开发
3、完成库存管理ui开发
4、创建task后针对于个人的任务安排数据库work表,将在下次迭代后完成三表联查业务逻辑完善
5、添加库存管理的模板下载、excl整流后批量导入
混淆项1、work的时间粒度到人|任务 2、已分配任务员工是否在分配任务页面显示
This commit is contained in:
2024-11-03 17:07:07 +08:00
parent 256952f0cb
commit 36a60d2f02
13 changed files with 786 additions and 50 deletions

View File

@@ -109,9 +109,9 @@
<!-- <el-table-column label="ID" align="center" prop="projectId" v-if="true"/>-->
<el-table-column label="项目名称" align="left" prop="projectName"/>
<el-table-column label="项目编号" align="left" prop="projectNum" width="230"/>
<el-table-column label="项目总金额" align="center" prop="funds" width="120">
<el-table-column label="项目总金额" align="center" prop="funds" width="120">
<template slot-scope="scope">
{{convertToTenThousand(scope.row.funds)}}
{{ convertToTenThousand(scope.row.funds) }}
</template>
</el-table-column>
<el-table-column label="项目类型" align="center" prop="projectType" width="100">
@@ -123,13 +123,13 @@
<template slot-scope="scope">
<div v-if="bailStatusTo(scope.row.bail) === 0">
<span style="color: #999999">未缴纳</span>
</div>
</div>
<div v-else style="color: red">
<div style="color: #1c84c6">
已缴纳
-
<span v-if="bailStatusIn(scope.row.bail) === 1" style="color: #1ab394">已退回</span>
<span v-else style="color: #ff9900">未退回</span>
<span v-else style="color: #ff9900">未退回</span>
</div>
</div>
</template>
@@ -146,9 +146,19 @@
<dict-tag :options="dict.type.sys_project_status" :value="scope.row.projectStatus"/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" width="120">
<el-table-column label="是否延期" align="center" prop="remark" width="120">
<template slot-scope="scope">
<span>{{ scope.row.remark == null || scope.row.remark == '' ? '暂无' : scope.row.remark }}</span>
<span v-if = "scope.row.isPostpone == 0"></span>
<!-- TODO 等待写一个抽屉 之中包括延期原因等等待项目绑定人员之后开发 -->
<el-button
v-if = "scope.row.isPostpone == 1"
size="mini"
type="text"
icon="el-icon-edit"
@click="openDrawer(scope.row)"
v-hasPermi="['oa:project:remove']"
>发生延期
</el-button>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
@@ -185,7 +195,7 @@
<el-dialog :title="title" :visible.sync="editShow" @close="closeDialog" width="76%" append-to-body>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="项目信息" name="first">
<el-tabs :tab-position="tabPosition" v-model="activeChild" >
<el-tabs :tab-position="tabPosition" v-model="activeChild">
<el-tab-pane label="项目查看" name="one">
<el-descriptions class="margin-top" title="基本信息" :column="4" border>
<el-descriptions-item :labelStyle="lableBg" span="2">
@@ -215,7 +225,7 @@
<i class="el-icon-goods"></i>
项目总金额
</template>
{{convertToTenThousand(form.funds)}}
{{ convertToTenThousand(form.funds) }}
</el-descriptions-item>
<el-descriptions-item :labelStyle="lableBg" span="2">
<template slot="label">
@@ -327,7 +337,7 @@
{{ bail.ratio == null || bail.ratio == undefined ? '未填写' : bail.ratio }}
</el-descriptions-item>
<el-descriptions-item label="退回金额" :span="1" :labelStyle="lableBg">
{{ bail.backMoney == null || bail.backMoney == undefined ? '未填写' : bail.backMoney }}
{{ bail.backMoney == null || bail.backMoney == undefined ? '未填写' : bail.backMoney }}
</el-descriptions-item>
<el-descriptions-item label="退回时间" :span="2" :labelStyle="lableBg">
{{ bail.backTime == null || bail.backTime == undefined ? '未填写' : bail.backTime }}
@@ -342,9 +352,9 @@
<el-tab-pane label="项目修改" name="two">
<!-- TODO 删除必填规则 -->
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="120px">-->
<el-form ref="form" :model="form" label-width="120px">
<!-- TODO 删除必填规则 -->
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="120px">-->
<el-form ref="form" :model="form" label-width="120px">
<el-divider content-position="center">基本信息</el-divider>
<el-row>
<el-col :span="12">
@@ -407,17 +417,36 @@
<el-input v-model="form.guarantee" placeholder="请输入质保期"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目周期">
<el-date-picker
v-model="periodItem"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
@blur="getTimeBlur">
</el-date-picker>
<el-col :span="6">
<el-form-item label="是否延期" prop="isPostpone">
<el-switch v-model="form.isPostpone" active-value="1" inactive-value="0"/>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.isPostpone==1">
<el-form-item label="周期延长">
<el-date-picker
v-model="periodItem"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
@blur="getTimeBlur">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.isPostpone==1">
<el-form-item label="延期原因" prop="postPoneReason">
<el-input v-model="form.postPoneReason" type="textarea" placeholder="请输入延期原因"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
<el-col :span="24">
@@ -493,7 +522,9 @@
<el-input v-model="bail.remark" placeholder="请输入备注"/>
</el-form-item>
</el-col>
<div style="color: #ff9900;padding-left: 50px;margin-bottom: 15px">备注缴纳金额为空状态即为未缴纳退回金额为空即为状态为未退回</div>
<div style="color: #ff9900;padding-left: 50px;margin-bottom: 15px">
备注缴纳金额为空状态即为未缴纳退回金额为空即为状态为未退回
</div>
</el-row>
</el-form>
<div class="dialog-footer">
@@ -525,9 +556,10 @@
:size="activity.size"
>
{{ activity.dictValue }} {{ activity.dictLabel }}
<div :id="'print' + index" v-if="activity.taskList.length > 0">
<div :id="'print' + index" v-if="activity.taskList.length > 0">
<el-card class="card-col">
<el-descriptions v-for="(item, key) in activity.taskList" :key="key" :title="'创建日期:'+ item.createTime"
<el-descriptions v-for="(item, key) in activity.taskList" :key="key"
:title="'创建日期:'+ item.createTime"
border class="card-col-center" :column="4">
<template slot="extra">
<div></div>
@@ -535,7 +567,7 @@
<el-descriptions-item label-style="width:120px;text-align: center;" span="2">
<template slot="label">
<i class="el-icon-receiving"></i>
任务主题{{item.length}}
任务主题{{ item.length }}
</template>
{{ item.taskTitle }}
</el-descriptions-item>
@@ -552,7 +584,7 @@
<i class="el-icon-mobile-phone"></i>
工作时间
</template>
{{item.beginTime}} {{item.finishTime}}
{{ item.beginTime }} {{ item.finishTime }}
</el-descriptions-item>
<el-descriptions-item label-style="width:120px;text-align: center;" span="2">
@@ -874,8 +906,8 @@
<el-dialog :title="title" :visible.sync="addShow" width="76%" append-to-body>
<!-- TODO 删除规则<el-form ref="form" :model="form" :rules="rules" label-width="110px">-->
<el-form ref="form" :model="form" label-width="110px">
<!-- TODO 删除规则<el-form ref="form" :model="form" :rules="rules" label-width="110px">-->
<el-form ref="form" :model="form" label-width="110px">
<el-row>
<el-col :span="12">
<el-form-item label="项目名称" prop="projectName">
@@ -926,26 +958,28 @@
<el-input v-model="form.funds" placeholder="请输入项目总金额"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="交货期" prop="address">
<el-input v-model="form.delivery" placeholder="请输入交货期"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目周期">
<el-date-picker
v-model="periodItem"
value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator=""
range-separator="延期"
start-placeholder="开始日期"
end-placeholder="结束日期"
@blur="getTimeBlur">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="质保期" prop="address">
<el-input v-model="form.guarantee" placeholder="请输入质保期"/>
@@ -1234,11 +1268,11 @@ export default {
functionary: [
{required: true, message: "项目负责人不能为空", trigger: "blur"}
],
address:[
address: [
{required: true, message: "项目地址不能为空", trigger: "blur"}
],
funds: [
{ required: true, message: '项目总金额不能为空', trigger: 'blur' },
{required: true, message: '项目总金额不能为空', trigger: 'blur'},
{
validator: (rule, value, callback) => {
const regex = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9]))/;
@@ -1287,16 +1321,17 @@ export default {
methods: {
/**new-工作类型进度**/
getTaskByDictType(pid){
getTaskByDictType(pid) {
getTaskByDictType(pid).then(res => {
//排序
this.stepsList = res.data.data.taskList.sort((a, b) => parseInt(b.dictValue) - parseInt(a.dictValue));
console.log(this.stepsList)
this.active = res.data.data.active;
})
},
/**获取字典类型为工作类型的数据**/
getDicts(){
getDicts() {
getDicts('sys_work_type').then(res => {
this.stepsListTop = res.data;
})
@@ -1338,18 +1373,18 @@ export default {
},
/**履约保证金是否缴纳**/
bailStatusTo(data){
if(JSON.parse(data).money === '' || JSON.parse(data).money === undefined){
return 0; //未缴纳
}else {
return 1 //已缴纳
}
bailStatusTo(data) {
if (JSON.parse(data).money === '' || JSON.parse(data).money === undefined) {
return 0; //未缴纳
} else {
return 1 //已缴纳
}
},
/**履约保证金是否退回**/
bailStatusIn(data){
if(JSON.parse(data).backMoney === '' || JSON.parse(data).backMoney === undefined){
bailStatusIn(data) {
if (JSON.parse(data).backMoney === '' || JSON.parse(data).backMoney === undefined) {
return 0; //未退回
}else {
} else {
return 1 //已退回
}
},
@@ -1455,6 +1490,7 @@ export default {
getTimeBlur(e) {
this.form.beginTime = e.value[0]
this.form.finishTime = e.value[1]
this.form.postponeTime = e.value[1]
},
/** 修改按钮操作 */
handleUpdate(row) {
@@ -1470,6 +1506,7 @@ export default {
getProject(projectId).then(response => {
this.loading = false;
this.form = response.data;
console.log(this.form)
this.bail = response.data.bail == null ? this.bail : JSON.parse(response.data.bail);
let period = [];
period.push(response.data.beginTime);
@@ -1632,7 +1669,7 @@ export default {
},
/** 金额转为万元 **/
convertToTenThousand(amount){
convertToTenThousand(amount) {
const convertToTenThousand = (amount) => `${Number((amount / 10000).toFixed(6))} 万元`;
return convertToTenThousand(amount);
},