样式调整
parent
b3bd2eff61
commit
5757b4d23c
|
@ -208,6 +208,12 @@ export const taskApi = {
|
||||||
url: `/task/target/${id}`,
|
url: `/task/target/${id}`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
}),
|
}),
|
||||||
|
setTaskSet: (data) => request({
|
||||||
|
url: `/task/config/update`,
|
||||||
|
method: 'put',
|
||||||
|
data: data,
|
||||||
|
|
||||||
|
}),
|
||||||
getTaskModel: (data) => request({
|
getTaskModel: (data) => request({
|
||||||
url: `/examine/template/list`,
|
url: `/examine/template/list`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
|
|
|
@ -10,34 +10,14 @@
|
||||||
<div>
|
<div>
|
||||||
<el-form :inline="true" class="demo-form-inline" size="small">
|
<el-form :inline="true" class="demo-form-inline" size="small">
|
||||||
<el-form-item label="人员姓名" class="form-item">
|
<el-form-item label="人员姓名" class="form-item">
|
||||||
<el-select
|
<el-select v-model="examineId" placeholder="请选择" @change="userChange" style="width: 300px">
|
||||||
v-model="examineId"
|
<el-option v-for="item in userList" :key="item.id" :label="item.userName" :value="item.id">
|
||||||
placeholder="请选择"
|
|
||||||
@change="userChange"
|
|
||||||
style="width: 300px"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in userList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.userName"
|
|
||||||
:value="item.id"
|
|
||||||
>
|
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="任务名称" class="form-item">
|
<el-form-item label="任务名称" class="form-item">
|
||||||
<el-select
|
<el-select v-model="examineTaskId" placeholder="请选择" @change="getUserList" style="width: 300px">
|
||||||
v-model="examineTaskId"
|
<el-option v-for="item in taskList" :key="item.id" :label="item.taskName" :value="item.id">
|
||||||
placeholder="请选择"
|
|
||||||
@change="getUserList"
|
|
||||||
style="width: 300px"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in taskList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.taskName"
|
|
||||||
:value="item.id"
|
|
||||||
>
|
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -46,11 +26,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-row jcsb aic userBox headerBox">
|
<div class="flex-row jcsb aic userBox headerBox">
|
||||||
<div class="flex-row aic" style="width: 200px">
|
<div class="flex-row aic" style="width: 200px">
|
||||||
<i
|
<i class="el-icon-user-solid" style="color: #4096ff; font-size: 24px; margin-right: 5px"></i>{{
|
||||||
class="el-icon-user-solid"
|
(userList.find((ele) => ele.id == examineId) || {}).userName}}
|
||||||
style="color: #4096ff; font-size: 24px; margin-right: 5px"
|
|
||||||
></i
|
|
||||||
>{{ (userList.find((ele) => ele.id == examineId) || {}).userName }}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="totalBox aic">
|
<div class="totalBox aic">
|
||||||
<div>考核评分:</div>
|
<div>考核评分:</div>
|
||||||
|
@ -60,92 +37,62 @@
|
||||||
<el-tabs v-model="activeName">
|
<el-tabs v-model="activeName">
|
||||||
<el-tab-pane label="组长评估" name="first">
|
<el-tab-pane label="组长评估" name="first">
|
||||||
<div class="tableBox">
|
<div class="tableBox">
|
||||||
<div
|
<div class="tableRow" v-for="(table, index) in tableData1" :key="index" style="margin-bottom: 20px">
|
||||||
class="tableRow"
|
|
||||||
v-for="(table, index) in tableData1"
|
|
||||||
:key="index"
|
|
||||||
style="margin-bottom: 20px"
|
|
||||||
>
|
|
||||||
<div class="userBox">{{ table[0].reviewCategory }}</div>
|
<div class="userBox">{{ table[0].reviewCategory }}</div>
|
||||||
<el-table :data="table" style="width: 100%">
|
<el-table :data="table" style="width: 100%">
|
||||||
<el-table-column
|
<el-table-column v-for="(header, hIndex) in headers" :key="hIndex" :label="header.label"
|
||||||
v-for="(header, hIndex) in headers"
|
:prop="header.prop" :width="header.width" :minWidth="header.minWidth">
|
||||||
:key="hIndex"
|
|
||||||
:label="header.label"
|
|
||||||
:prop="header.prop"
|
|
||||||
:width="header.width"
|
|
||||||
:minWidth="header.minWidth"
|
|
||||||
>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column class-name="editCell" label="员工自评" prop="score"
|
||||||
label="评分"
|
v-if="examineTask.templateId && table[0].reviewCategory == '发展与协作' && examineTask.templateType != 0"
|
||||||
prop="score"
|
min-width="220">
|
||||||
:minWidth="420"
|
<template slot-scope="scope">
|
||||||
class-name="sorceTableCell"
|
<div>
|
||||||
>
|
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="0/300" v-model="scope.row.remark"
|
||||||
|
readonly maxlength="300" show-word-limit>
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="评分" prop="score" :minWidth="420" class-name="sorceTableCell">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div style="width: 88%; position: relative">
|
<div style="width: 88%; position: relative">
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div class="flex-row jcsb" style="
|
||||||
class="flex-row jcsb"
|
|
||||||
style="
|
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
width: 90%;
|
width: 90%;
|
||||||
color: #999;
|
color: #999;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
"
|
">
|
||||||
>
|
|
||||||
<div>0</div>
|
<div>0</div>
|
||||||
<div v-show="scope.row.score != 10">10</div>
|
<div v-show="scope.row.score != 10">10</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="scoreText aic" v-show="scope.row.score != 0" :style="{
|
||||||
class="scoreText aic"
|
left: scope.row.score * 9 - 5 + '%',
|
||||||
v-show="scope.row.score != 0"
|
}">
|
||||||
:style="{
|
<img src="@/assets/task/score.png" :style="{
|
||||||
left: scope.row.score * 9 - 5 + '%',
|
height: '28px',
|
||||||
}"
|
width: '34px',
|
||||||
>
|
zIndex: 0,
|
||||||
<img
|
position: 'absolute',
|
||||||
src="@/assets/task/score.png"
|
top: '0',
|
||||||
:style="{
|
}" alt="" />
|
||||||
height: '28px',
|
<div :style="{
|
||||||
width: '34px',
|
zIndex: 10,
|
||||||
zIndex: 0,
|
paddingLeft: scope.row.score != 10 ? '13px' : '9px',
|
||||||
position: 'absolute',
|
}">
|
||||||
top: '0',
|
|
||||||
}"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
:style="{
|
|
||||||
zIndex: 10,
|
|
||||||
paddingLeft: scope.row.score != 10 ? '13px' : '9px',
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
{{ scope.row.score }}
|
{{ scope.row.score }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div v-for="item in scope.row.score == 0
|
||||||
v-for="item in scope.row.score == 0
|
? 0
|
||||||
? 0
|
: scope.row.score - 1" :key="item" class="stepBox" :style="{
|
||||||
: scope.row.score - 1"
|
|
||||||
:key="item"
|
|
||||||
class="stepBox"
|
|
||||||
:style="{
|
|
||||||
left: item * 9 + 1.5 + '%',
|
left: item * 9 + 1.5 + '%',
|
||||||
}"
|
}"></div>
|
||||||
></div>
|
<el-slider v-model="scope.row.score" :min="0" :max="10" :disabled="true" style="width: 90%"
|
||||||
<el-slider
|
show-stops show-tooltip></el-slider>
|
||||||
v-model="scope.row.score"
|
|
||||||
:min="0"
|
|
||||||
:max="10"
|
|
||||||
:disabled="true"
|
|
||||||
style="width: 90%"
|
|
||||||
show-stops
|
|
||||||
show-tooltip
|
|
||||||
></el-slider>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="statusText" v-show="scope.row.score == 0">
|
<div class="statusText" v-show="scope.row.score == 0">
|
||||||
暂未打分
|
暂未打分
|
||||||
|
@ -154,116 +101,70 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<div class="userBox">总体评价</div>
|
<div class="userBox">总体评价</div>
|
||||||
<div>
|
<div>
|
||||||
<el-input
|
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="0/300" v-model="judgeContent"
|
||||||
type="textarea"
|
:readonly="true" maxlength="300" show-word-limit>
|
||||||
:autosize="{ minRows: 4 }"
|
|
||||||
placeholder="0/300"
|
|
||||||
v-model="judgeContent"
|
|
||||||
:readonly="true"
|
|
||||||
maxlength="300"
|
|
||||||
show-word-limit
|
|
||||||
>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 20px;font-weight: bold;">组长:{{ manageUserName }}</div>
|
<div style="margin-top: 20px;font-weight: bold;">组长:{{ manageUserName }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div></el-tab-pane
|
</div>
|
||||||
>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="个人自评" name="second">
|
<el-tab-pane label="个人自评" name="second">
|
||||||
<div class="tableBox">
|
<div class="tableBox">
|
||||||
<div
|
<div class="tableRow" v-for="(table, index) in tableData2" :key="index" style="margin-bottom: 20px">
|
||||||
class="tableRow"
|
|
||||||
v-for="(table, index) in tableData2"
|
|
||||||
:key="index"
|
|
||||||
style="margin-bottom: 20px"
|
|
||||||
>
|
|
||||||
<div class="userBox">{{ table[0].reviewCategory }}</div>
|
<div class="userBox">{{ table[0].reviewCategory }}</div>
|
||||||
<el-table :data="table" style="width: 100%">
|
<el-table :data="table" style="width: 100%">
|
||||||
<el-table-column
|
<el-table-column v-for="(header, hIndex) in headers" :key="hIndex" :label="header.label"
|
||||||
v-for="(header, hIndex) in headers"
|
:prop="header.prop" :width="header.width" :minWidth="header.minWidth">
|
||||||
:key="hIndex"
|
|
||||||
:label="header.label"
|
|
||||||
:prop="header.prop"
|
|
||||||
:width="header.width"
|
|
||||||
:minWidth="header.minWidth"
|
|
||||||
>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
|
||||||
label="评分"
|
<el-table-column label="评分" prop="score" :minWidth="320" class-name="sorceTableCell"
|
||||||
prop="score"
|
v-if="table[0].reviewCategory != '发展与协作'">
|
||||||
:minWidth="320"
|
|
||||||
class-name="sorceTableCell"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div style="width: 88%; position: relative">
|
<div style="width: 88%; position: relative">
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div class="flex-row jcsb" style="
|
||||||
class="flex-row jcsb"
|
|
||||||
style="
|
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
width: 90%;
|
width: 90%;
|
||||||
color: #999;
|
color: #999;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
"
|
">
|
||||||
>
|
|
||||||
<div>0</div>
|
<div>0</div>
|
||||||
<div v-show="scope.row.score != 10">10</div>
|
<div v-show="scope.row.score != 10">10</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="scoreText aic" v-show="scope.row.score != 0" :style="{
|
||||||
class="scoreText aic"
|
left: scope.row.score * 9 - 5 + '%',
|
||||||
v-show="scope.row.score != 0"
|
}">
|
||||||
:style="{
|
<img src="@/assets/task/score.png" :style="{
|
||||||
left: scope.row.score * 9 - 5 + '%',
|
height: '28px',
|
||||||
}"
|
width: '34px',
|
||||||
>
|
zIndex: 0,
|
||||||
<img
|
position: 'absolute',
|
||||||
src="@/assets/task/score.png"
|
top: '0',
|
||||||
:style="{
|
}" alt="" />
|
||||||
height: '28px',
|
<div :style="{
|
||||||
width: '34px',
|
zIndex: 10,
|
||||||
zIndex: 0,
|
paddingLeft: scope.row.score != 10 ? '13px' : '9px',
|
||||||
position: 'absolute',
|
}">
|
||||||
top: '0',
|
|
||||||
}"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
:style="{
|
|
||||||
zIndex: 10,
|
|
||||||
paddingLeft: scope.row.score != 10 ? '13px' : '9px',
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
{{ scope.row.score }}
|
{{ scope.row.score }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div v-for="item in scope.row.score == 0
|
||||||
v-for="item in scope.row.score == 0
|
? 0
|
||||||
? 0
|
: scope.row.score - 1" :key="item" class="stepBox" :style="{
|
||||||
: scope.row.score - 1"
|
|
||||||
:key="item"
|
|
||||||
class="stepBox"
|
|
||||||
:style="{
|
|
||||||
left: item * 9 + 1.5 + '%',
|
left: item * 9 + 1.5 + '%',
|
||||||
}"
|
}"></div>
|
||||||
></div>
|
<el-slider v-model="scope.row.score" :min="0" :max="10" @change="updateScore(scope.row)"
|
||||||
<el-slider
|
:disabled="true" style="width: 90%" show-stops show-tooltip></el-slider>
|
||||||
v-model="scope.row.score"
|
|
||||||
:min="0"
|
|
||||||
:max="10"
|
|
||||||
@change="updateScore(scope.row)"
|
|
||||||
:disabled="true"
|
|
||||||
style="width: 90%"
|
|
||||||
show-stops
|
|
||||||
show-tooltip
|
|
||||||
></el-slider>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="statusText" v-show="scope.row.score == 0">
|
<div class="statusText" v-show="scope.row.score == 0">
|
||||||
暂未打分
|
暂未打分
|
||||||
|
@ -271,35 +172,42 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="自评总结" prop="score" width="150">
|
<el-table-column label="自评总结" prop="score" width="150"
|
||||||
|
v-if="(examineTask.templateId && table[0].reviewCategory == '发展与协作') || !examineTask.templateId">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button @click="handleEdit(scope.row)" type="text" size="mini"
|
||||||
@click="handleEdit(scope.row)"
|
:class="{ hasEdit: !scope.row.remark }" style="font-weight: 600">{{ scope.row.remark ? "查看" :
|
||||||
type="text"
|
"暂未评价" }}</el-button>
|
||||||
size="mini"
|
|
||||||
:class="{ hasEdit: !scope.row.remark }"
|
|
||||||
style="font-weight: 600"
|
|
||||||
>{{ scope.row.remark ? "查看" : "暂未评价" }}</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<div v-if="examineTask.templateType != 0 && table[0].reviewCategory != '发展与协作'" style="margin-top: 10px;">
|
||||||
|
<div class="userBox">评价</div>
|
||||||
|
<div>
|
||||||
|
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="0/300" v-model="table[0].remarkCate"
|
||||||
|
readonly maxlength="300" show-word-limit>
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<div class="userBox">总体评价</div>
|
||||||
|
<div>
|
||||||
|
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="0/300" v-model="selfJudgeContent"
|
||||||
|
:readonly="true" maxlength="300" show-word-limit>
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div></div>
|
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<el-dialog title="自评总结" :visible.sync="dialogVisible" width="30%">
|
<el-dialog title="自评总结" :visible.sync="dialogVisible" width="30%">
|
||||||
<div>
|
<div>
|
||||||
<el-input
|
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="0/200" v-model="remark" readonly>
|
||||||
type="textarea"
|
|
||||||
:autosize="{ minRows: 4 }"
|
|
||||||
placeholder="0/200"
|
|
||||||
v-model="remark"
|
|
||||||
readonly
|
|
||||||
>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -333,9 +241,12 @@ export default {
|
||||||
tableData2: [],
|
tableData2: [],
|
||||||
taskList: [],
|
taskList: [],
|
||||||
judgeContent: "",
|
judgeContent: "",
|
||||||
|
selfJudgeContent: "",
|
||||||
score: "",
|
score: "",
|
||||||
activeName: "first",
|
activeName: "first",
|
||||||
manageUserName: "",
|
manageUserName: "",
|
||||||
|
examineTask: {},
|
||||||
|
examineRemark: {}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -389,16 +300,24 @@ export default {
|
||||||
examineId: this.examineId,
|
examineId: this.examineId,
|
||||||
};
|
};
|
||||||
taskApi.getTaskScoreDetail(param).then((res) => {
|
taskApi.getTaskScoreDetail(param).then((res) => {
|
||||||
|
this.examineRemark = res.data.remark
|
||||||
|
|
||||||
let objData = {};
|
let objData = {};
|
||||||
res.data.examineConfigDetailVoList.forEach((ele) => {
|
res.data.examineConfigDetailVoList.forEach((ele) => {
|
||||||
if (!objData[ele.reviewCategory]) objData[ele.reviewCategory] = [];
|
if (!objData[ele.reviewCategory]) objData[ele.reviewCategory] = [];
|
||||||
objData[ele.reviewCategory].push(ele);
|
objData[ele.reviewCategory].push(ele);
|
||||||
});
|
});
|
||||||
if (type == 0) this.tableData1 = Object.values(objData);
|
if (type == 0) this.tableData1 = Object.values(objData);
|
||||||
else this.tableData2 = Object.values(objData);
|
else this.tableData2 = Object.values(objData).map((ele, index) => {
|
||||||
|
ele[0].remarkCate = this.examineRemark[index]?.remark
|
||||||
|
return ele
|
||||||
|
});;
|
||||||
this.judgeContent = res.data.examineUser.judgeContent;
|
this.judgeContent = res.data.examineUser.judgeContent;
|
||||||
|
this.selfJudgeContent = res.data.examineUser.judgeContent;
|
||||||
|
|
||||||
|
|
||||||
this.manageUserName = res.data.examineUser.manageUserName;
|
this.manageUserName = res.data.examineUser.manageUserName;
|
||||||
|
this.examineTask = res.data.examineTask
|
||||||
if (res.data.examineUser.score) {
|
if (res.data.examineUser.score) {
|
||||||
this.score = res.data.examineUser.score;
|
this.score = res.data.examineUser.score;
|
||||||
} else if (res.data.examineUser.manageScore) {
|
} else if (res.data.examineUser.manageScore) {
|
||||||
|
@ -419,9 +338,11 @@ export default {
|
||||||
.conetentBox {
|
.conetentBox {
|
||||||
padding: 40px 30px 30px;
|
padding: 40px 30px 30px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
height: 90vh; /* 设置整体高度 */
|
height: 90vh;
|
||||||
|
/* 设置整体高度 */
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-table {
|
.el-table {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
@ -431,31 +352,37 @@ export default {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-slider__runway {
|
::v-deep .el-slider__runway {
|
||||||
height: 14px;
|
height: 14px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin: 10px !important;
|
margin: 10px !important;
|
||||||
/* width: 95%; */
|
/* width: 95%; */
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-slider__runway.disabled .el-slider__bar {
|
::v-deep .el-slider__runway.disabled .el-slider__bar {
|
||||||
height: 14px;
|
height: 14px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
|
||||||
background-color: #ff5722;
|
background-color: #ff5722;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-slider__stop {
|
::v-deep .el-slider__stop {
|
||||||
height: 14px;
|
height: 14px;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-slider__bar {
|
::v-deep .el-slider__bar {
|
||||||
height: 14px;
|
height: 14px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background: linear-gradient(to right, #ffb144, #ff7d00);
|
background: linear-gradient(to right, #ffb144, #ff7d00);
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-slider__button {
|
::v-deep .el-slider__button {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scoreText {
|
.scoreText {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -464,6 +391,7 @@ export default {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-table th {
|
::v-deep .el-table th {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
@ -475,6 +403,7 @@ export default {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.statusText {
|
.statusText {
|
||||||
color: #ff7d00;
|
color: #ff7d00;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -483,43 +412,52 @@ export default {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hasEdit {
|
.hasEdit {
|
||||||
color: #999999;
|
color: #999999;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-dialog {
|
::v-deep .el-dialog {
|
||||||
margin-top: 15% !important;
|
margin-top: 15% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tableBox {
|
.tableBox {
|
||||||
height: 75%;
|
height: 75%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tableBox ::v-deep .el-table {
|
.tableBox ::v-deep .el-table {
|
||||||
border-left: 1px solid #eeeeee;
|
border-left: 1px solid #eeeeee;
|
||||||
border-right: 1px solid #eeeeee;
|
border-right: 1px solid #eeeeee;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tableRow {
|
.tableRow {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
box-shadow: 0 0 20px #0000000f;
|
box-shadow: 0 0 20px #0000000f;
|
||||||
}
|
}
|
||||||
|
|
||||||
.titleBox {
|
.titleBox {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-bottom: 40px;
|
margin-bottom: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerBox {
|
.headerBox {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
background-color: #f9f9f9;
|
background-color: #f9f9f9;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.block {
|
.block {
|
||||||
width: 4px;
|
width: 4px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
background-color: #4096ff;
|
background-color: #4096ff;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stepBox {
|
.stepBox {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 33px;
|
top: 33px;
|
||||||
|
@ -528,6 +466,7 @@ export default {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
.totalBox {
|
.totalBox {
|
||||||
width: 180px;
|
width: 180px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -535,28 +474,35 @@ export default {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scoreTotal {
|
.scoreTotal {
|
||||||
font-size: 28px;
|
font-size: 28px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: #ff7d00;
|
color: #ff7d00;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .sorceTableCell .cell {
|
::v-deep .sorceTableCell .cell {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-table__body .el-table__cell {
|
::v-deep .el-table__body .el-table__cell {
|
||||||
padding: 20px 40px;
|
padding: 20px 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-table__header .el-table__cell {
|
::v-deep .el-table__header .el-table__cell {
|
||||||
padding: 14px 30px;
|
padding: 14px 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-tabs__item.is-active {
|
::v-deep .el-tabs__item.is-active {
|
||||||
color: #4096ff;
|
color: #4096ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-tabs__item {
|
::v-deep .el-tabs__item {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-tabs__active-bar {
|
::v-deep .el-tabs__active-bar {
|
||||||
height: 3px;
|
height: 3px;
|
||||||
width: 32px !important;
|
width: 32px !important;
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column class-name="editCell" label="员工自评" prop="score"
|
<el-table-column class-name="editCell" label="员工自评" prop="score"
|
||||||
v-if="!isNormal && examineTask.templateId && table[0].reviewCategory == '发展与协作' && examineTask.templateType != 0"
|
v-if="!isNormal && examineTask.templateId && table[0].reviewCategory == '发展与协作' && examineTask.templateType != 0"
|
||||||
min-width="220">
|
min-width="320">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>
|
<div>
|
||||||
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="0/300" v-model="scope.row.remark"
|
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="0/300" v-model="scope.row.remark"
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="评分" prop="score"
|
<el-table-column label="评分" prop="score"
|
||||||
:minWidth="isNormal ? 320 : table[0].reviewCategory == '发展与协作' ? 220 : 420" class-name="sorceTableCell"
|
:minWidth="400" class-name="sorceTableCell"
|
||||||
v-if="(isNormal && table[0].reviewCategory != '发展与协作') || !isNormal">
|
v-if="(isNormal && table[0].reviewCategory != '发展与协作') || !isNormal">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div style="width: 88%; position: relative">
|
<div style="width: 88%; position: relative">
|
||||||
|
@ -121,6 +121,7 @@
|
||||||
</el-input>
|
</el-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -134,7 +135,7 @@
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="cancelEdit">{{
|
<el-button @click="cancelEdit">{{
|
||||||
isEdit ? "取 消" : "关闭"
|
isEdit ? "取 消" : "关闭"
|
||||||
}}</el-button>
|
}}</el-button>
|
||||||
<el-button type="primary" @click="saveEdit" v-if="isEdit">确 定</el-button>
|
<el-button type="primary" @click="saveEdit" v-if="isEdit">确 定</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
@ -159,7 +160,8 @@ export default {
|
||||||
{
|
{
|
||||||
label: "评分标准",
|
label: "评分标准",
|
||||||
prop: "remarks",
|
prop: "remarks",
|
||||||
minWidth: this.$route.query.isNormal ? 240 : 360,
|
minWidth:300
|
||||||
|
// width: '25%',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
// 二维数组,每个子数组代表一个表格的数据
|
// 二维数组,每个子数组代表一个表格的数据
|
||||||
|
@ -183,6 +185,7 @@ export default {
|
||||||
},
|
},
|
||||||
examineUser: {},
|
examineUser: {},
|
||||||
examineTask: {},
|
examineTask: {},
|
||||||
|
examineRemark: {},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -206,20 +209,27 @@ export default {
|
||||||
param.examineId = this.examineId;
|
param.examineId = this.examineId;
|
||||||
taskApi.getTaskScoreDetail(param).then((res) => {
|
taskApi.getTaskScoreDetail(param).then((res) => {
|
||||||
let objData = {};
|
let objData = {};
|
||||||
res.data.examineConfigDetailVoList.forEach((ele) => {
|
this.examineRemark = res.data.remark;
|
||||||
|
res.data.examineConfigDetailVoList.forEach((ele, index) => {
|
||||||
if (!objData[ele.reviewCategory]) objData[ele.reviewCategory] = [];
|
if (!objData[ele.reviewCategory]) objData[ele.reviewCategory] = [];
|
||||||
objData[ele.reviewCategory].push(ele);
|
objData[ele.reviewCategory].push(ele);
|
||||||
});
|
});
|
||||||
this.tableData = Object.values(objData);
|
|
||||||
|
this.tableData = Object.values(objData).map((ele, index) => {
|
||||||
|
ele[0].remarkCate = this.examineRemark[index]?.remark
|
||||||
|
return ele
|
||||||
|
});
|
||||||
if (!this.examineId) {
|
if (!this.examineId) {
|
||||||
} else {
|
} else {
|
||||||
this.saveData.judgeContent = res.data.examineUser.judgeContent || "";
|
this.saveData.judgeContent = res.data.examineUser.judgeContent || "";
|
||||||
this.saveData.manageScore = res.data.examineUser.manageScore || "";
|
this.saveData.manageScore = res.data.examineUser.manageScore || "";
|
||||||
}
|
}
|
||||||
|
|
||||||
this.examineId = res.data.examineUser.id;
|
this.examineId = res.data.examineUser.id;
|
||||||
this.examineTask = res.data.examineTask;
|
this.examineTask = res.data.examineTask;
|
||||||
this.examineUser = res.data.examineUser;
|
this.examineUser = res.data.examineUser;
|
||||||
|
if (this.examineTask.templateType == 0) {
|
||||||
|
this.saveData.judgeContent = res.data.examineUser.selfJudgeContent
|
||||||
|
}
|
||||||
if (
|
if (
|
||||||
res.data.examineUser.examineStatusSelf == 1 &&
|
res.data.examineUser.examineStatusSelf == 1 &&
|
||||||
res.data.examineUser.examineStatus == 1
|
res.data.examineUser.examineStatus == 1
|
||||||
|
@ -258,7 +268,11 @@ export default {
|
||||||
remark: ele.remark,
|
remark: ele.remark,
|
||||||
reviewCategory: ele.reviewCategory,
|
reviewCategory: ele.reviewCategory,
|
||||||
}));
|
}));
|
||||||
this.saveData.examineRemarkList = this.tableData.filter((ele)=>ele[0].reviewCategory!='发展与协作').map((ele) => ({ reviewCategory: ele[0].reviewCategory, remark: ele[0].remarkCate }))
|
if (this.examineTask.templateType != 0 && this.isNormal) {
|
||||||
|
this.saveData.examineRemarkList = this.tableData.filter((ele) => ele[0].reviewCategory != '发展与协作').map((ele) => ({ reviewCategory: ele[0].reviewCategory, remark: ele[0].remarkCate }))
|
||||||
|
} else {
|
||||||
|
this.saveData.examineRemarkList = []
|
||||||
|
}
|
||||||
|
|
||||||
this.saveData.taskId = this.examineTaskId;
|
this.saveData.taskId = this.examineTaskId;
|
||||||
this.saveData.examineId = this.examineId;
|
this.saveData.examineId = this.examineId;
|
||||||
|
@ -269,6 +283,10 @@ export default {
|
||||||
|
|
||||||
// 保存
|
// 保存
|
||||||
if (status == 0) {
|
if (status == 0) {
|
||||||
|
if (this.isNormal && this.examineTask.templateType == 0) {
|
||||||
|
this.saveData.selfJudgeContent = this.saveData.judgeContent
|
||||||
|
this.saveData.judgeContent = ''
|
||||||
|
}
|
||||||
this.saveScore();
|
this.saveScore();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -287,6 +305,15 @@ export default {
|
||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
type: "warning",
|
type: "warning",
|
||||||
});
|
});
|
||||||
|
} else if (
|
||||||
|
this.saveData.examineDetailList.filter((ele) => ele.remark.length < 100 && ele.reviewCategory == '发展与协作').length &&
|
||||||
|
this.isNormal &&
|
||||||
|
status
|
||||||
|
) {
|
||||||
|
this.$alert("发展与协作下的自评总结最少100个字符,请完善后再试", "提交失败", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
} else if (this.saveData.judgeContent.length > 300 && !this.isNormal && this.examineTask.templateType == '0') {
|
} else if (this.saveData.judgeContent.length > 300 && !this.isNormal && this.examineTask.templateType == '0') {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: "总体评价限制300个字符",
|
message: "总体评价限制300个字符",
|
||||||
|
@ -297,11 +324,21 @@ export default {
|
||||||
message: "总体评价为必填",
|
message: "总体评价为必填",
|
||||||
type: "warning",
|
type: "warning",
|
||||||
});
|
});
|
||||||
} else if (this.saveData.examineRemarkList.filter((ele) => !ele.remark).length && this.isNormal) {
|
} else if (!this.saveData.judgeContent.length && this.isNormal && this.examineTask.templateType == 0) {
|
||||||
|
this.$message({
|
||||||
|
message: "个人总体评价为必填",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
} else if (this.saveData.examineRemarkList.filter((ele) => !ele.remark).length && this.isNormal && this.examineTask.templateType != 0 && this.isNormal) {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: "存在未填写大类评价,请完善后再试",
|
message: "存在未填写大类评价,请完善后再试",
|
||||||
type: "warning",
|
type: "warning",
|
||||||
});
|
});
|
||||||
|
} else if (this.saveData.examineRemarkList.filter((ele) => ele.remark.length < 100).length && this.isNormal && this.examineTask.templateType != 0 && this.isNormal) {
|
||||||
|
this.$message({
|
||||||
|
message: "大类评价最少100个字符,请完善后再试",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
if (status) {
|
if (status) {
|
||||||
this.$confirm(
|
this.$confirm(
|
||||||
|
@ -313,9 +350,17 @@ export default {
|
||||||
type: "warning",
|
type: "warning",
|
||||||
}
|
}
|
||||||
).then(() => {
|
).then(() => {
|
||||||
|
if (this.isNormal && this.examineTask.templateType == 0) {
|
||||||
|
this.saveData.selfJudgeContent = this.saveData.judgeContent
|
||||||
|
this.saveData.judgeContent = ''
|
||||||
|
}
|
||||||
this.saveScore();
|
this.saveScore();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
if (this.isNormal && this.examineTask.templateType == 0) {
|
||||||
|
this.saveData.selfJudgeContent = this.saveData.judgeContent
|
||||||
|
this.saveData.judgeContent = ''
|
||||||
|
}
|
||||||
this.saveScore();
|
this.saveScore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -497,14 +542,16 @@ export default {
|
||||||
|
|
||||||
::v-deep .el-table__body .sorceTableCell .cell {
|
::v-deep .el-table__body .sorceTableCell .cell {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
padding-right: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .sorceTableCell.el-table__cell {
|
::v-deep .sorceTableCell.el-table__cell {
|
||||||
padding-right: 10px !important;
|
padding-left: 10% !important;
|
||||||
|
/* padding-right: 10px !important; */
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-table__body .el-table__cell {
|
::v-deep .el-table__body .el-table__cell {
|
||||||
padding: 20px 40px;
|
padding: 20px 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-table__header .el-table__cell {
|
::v-deep .el-table__header .el-table__cell {
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
</div>
|
</div>
|
||||||
<div>看板类型</div>
|
<div>看板类型</div>
|
||||||
|
|
||||||
<el-select v-model="moduleType" placeholder="看板类型" clearable style="width: 200px" readonly>
|
<el-select v-model="moduleType" placeholder="看板类型" clearable style="width: 200px" readonly disabled>
|
||||||
<el-option label="年度考核" value="0" />
|
<el-option label="年度考核" value="0" />
|
||||||
<el-option label="季度考核" value="1" />
|
<el-option label="季度考核" value="1" />
|
||||||
<el-option label="年月考核" value="2" />
|
<el-option label="年度考核" value="2" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<el-select v-model="searchForm.templateType" placeholder="状态" clearable style="width: 300px">
|
<el-select v-model="searchForm.templateType" placeholder="状态" clearable style="width: 300px">
|
||||||
<el-option label="年度考核" value="0" />
|
<el-option label="年度考核" value="0" />
|
||||||
<el-option label="季度考核" value="1" />
|
<el-option label="季度考核" value="1" />
|
||||||
<el-option label="年月考核" value="2" />
|
<el-option label="年度考核" value="2" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
|
|
@ -50,20 +50,6 @@
|
||||||
@click.native="openUserSelectDialog"><el-button slot="append"
|
@click.native="openUserSelectDialog"><el-button slot="append"
|
||||||
icon="el-icon-s-custom"></el-button></el-input>
|
icon="el-icon-s-custom"></el-button></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="截止时间" class="form-item" prop="endTime">
|
|
||||||
<el-date-picker v-model="taskData.endTime" type="date" style="width: 90%" placeholder="选择日期"
|
|
||||||
value-format="yyyy-MM-dd 23:59:59" :picker-options="{
|
|
||||||
disabledDate: disabledDate,
|
|
||||||
}">
|
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="年份" class="form-item" prop="year">
|
|
||||||
<el-date-picker v-model="taskData.year" type="year" style="width: 90%" placeholder="选择年份"
|
|
||||||
value-format="yyyy" :picker-options="{
|
|
||||||
disabledDate: disabledDate,
|
|
||||||
}">
|
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="考核模板" class="form-item" prop="templateId">
|
<el-form-item label="考核模板" class="form-item" prop="templateId">
|
||||||
<div>
|
<div>
|
||||||
<el-radio-group v-model="taskData.templateType" @change="() => {
|
<el-radio-group v-model="taskData.templateType" @change="() => {
|
||||||
|
@ -81,6 +67,21 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="截止时间" class="form-item" prop="endTime">
|
||||||
|
<el-date-picker v-model="taskData.endTime" type="date" style="width: 90%" placeholder="选择日期"
|
||||||
|
value-format="yyyy-MM-dd 23:59:59" :picker-options="{
|
||||||
|
disabledDate: disabledDate,
|
||||||
|
}">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="年份" class="form-item" prop="year">
|
||||||
|
<el-date-picker v-model="taskData.year" type="year" style="width: 90%" placeholder="选择年份"
|
||||||
|
value-format="yyyy" :picker-options="{
|
||||||
|
disabledDate: disabledDate,
|
||||||
|
}">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
|
@ -91,7 +92,10 @@
|
||||||
<el-dialog title="配置指标和权重" :visible.sync="dialogVisible2">
|
<el-dialog title="配置指标和权重" :visible.sync="dialogVisible2">
|
||||||
<div class="modal">
|
<div class="modal">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="setText" style="font-weight: 600">累计权重</div>
|
<div class="setText flex-row jcsb" style="font-weight: 600">
|
||||||
|
<div>评估维度</div>
|
||||||
|
<div>累计权重</div>
|
||||||
|
</div>
|
||||||
<el-collapse v-model="letfValue" :accordion="true" style="height: 300px; overflow: auto">
|
<el-collapse v-model="letfValue" :accordion="true" style="height: 300px; overflow: auto">
|
||||||
<el-collapse-item v-for="(item, index) in scoreList" :key="index" :name="item.title">
|
<el-collapse-item v-for="(item, index) in scoreList" :key="index" :name="item.title">
|
||||||
<template #title>
|
<template #title>
|
||||||
|
@ -120,9 +124,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="flex-row jcsb" style="margin-bottom: 10px">
|
<div class="flex-row jcsb setText" style="margin-bottom: 20px">
|
||||||
<div style="width: 50%; font-weight: 600">指标</div>
|
<div style="width: 50%; font-weight: 600;text-align: left;">指标</div>
|
||||||
<div class="center" style="width: 50%; font-weight: 600">
|
<div class="center" style="width: 50%; font-weight: 600;text-align: left;padding-left: 5px;">
|
||||||
权重占比
|
权重占比
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -133,7 +137,7 @@
|
||||||
.list || []
|
.list || []
|
||||||
).find((ele) => ele.title + ele.type == selectLeftRow) || {}
|
).find((ele) => ele.title + ele.type == selectLeftRow) || {}
|
||||||
).rightArr || []" :key="index" style="margin-bottom: 10px" class="flex-row jcsb aic">
|
).rightArr || []" :key="index" style="margin-bottom: 10px" class="flex-row jcsb aic">
|
||||||
<div style="width: 50%; font-weight: 600">
|
<div style="width: 50%; font-weight: 600;color: #333;">
|
||||||
{{ item.reviewItem }}
|
{{ item.reviewItem }}
|
||||||
</div>
|
</div>
|
||||||
<div class="center" style="width: 50%">
|
<div class="center" style="width: 50%">
|
||||||
|
@ -145,8 +149,8 @@
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
">
|
">
|
||||||
<div>0</div>
|
<div style="font-weight: 500;">0</div>
|
||||||
<div v-show="item.weight != 20">20</div>
|
<div v-show="item.weight != 20" style="font-weight: 500;">20</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="scoreText aic" v-show="item.weight != 0" :style="{
|
<div class="scoreText aic" v-show="item.weight != 0" :style="{
|
||||||
left: item.weight * 4.5 - 2.5 + '%',
|
left: item.weight * 4.5 - 2.5 + '%',
|
||||||
|
@ -160,10 +164,10 @@
|
||||||
}" alt="" />
|
}" alt="" />
|
||||||
<div :style="{
|
<div :style="{
|
||||||
zIndex: 10,
|
zIndex: 10,
|
||||||
textIndent: item.weight < 10 ? '13px' : '10px',
|
textIndent: item.weight < 10 ? '7px' : '5px',
|
||||||
fontSize: '12px',
|
fontSize: '12px',
|
||||||
}">
|
}">
|
||||||
{{ item.weight }}
|
{{ item.weight }}%
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="flex-row jcsb scoreBox" style="margin-left: 15px">
|
<!-- <div class="flex-row jcsb scoreBox" style="margin-left: 15px">
|
||||||
|
@ -270,8 +274,8 @@ export default {
|
||||||
userIdList: [],
|
userIdList: [],
|
||||||
endTime: "",
|
endTime: "",
|
||||||
peopleNumber: 0,
|
peopleNumber: 0,
|
||||||
templateType:'0',
|
templateType: '0',
|
||||||
templateId:'',
|
templateId: '',
|
||||||
year: "",
|
year: "",
|
||||||
taskStatus: 0
|
taskStatus: 0
|
||||||
},
|
},
|
||||||
|
@ -710,21 +714,28 @@ export default {
|
||||||
|
|
||||||
.modal {
|
.modal {
|
||||||
display: flex;
|
display: flex;
|
||||||
border-bottom: 1px solid #ccc;
|
border-bottom: 1px solid #E6E6E6;
|
||||||
border-top: 1px solid #ccc;
|
// border-top: 1px solid #E6E6E6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left {
|
.left {
|
||||||
width: 40%;
|
width: 40%;
|
||||||
padding: 20px;
|
padding:0;
|
||||||
border-right: 1px solid #ccc;
|
// border-right: 1px solid #E6E6E6;
|
||||||
height: 450px;
|
height: 450px;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
box-shadow: 5px 0 20px 5px #eeeeee;
|
||||||
|
z-index: 100;
|
||||||
|
>div{
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
width: 60%;
|
width: 60%;
|
||||||
padding: 20px 40px;
|
// padding: 0 40px;
|
||||||
height: 450px;
|
height: 450px;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
|
||||||
|
@ -732,6 +743,11 @@ export default {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
>div{
|
||||||
|
padding-left: 3cap;
|
||||||
|
padding-right: 30px;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.scoreBox {
|
.scoreBox {
|
||||||
|
@ -776,8 +792,9 @@ export default {
|
||||||
|
|
||||||
.setText {
|
.setText {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
background-color: #FAFAFA;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
padding:15px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.leftSub {
|
.leftSub {
|
||||||
|
@ -845,7 +862,7 @@ export default {
|
||||||
top: 29px;
|
top: 29px;
|
||||||
height: 14px;
|
height: 14px;
|
||||||
width: 2px;
|
width: 2px;
|
||||||
background-color: #fff;
|
background-color: transparent;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,22 +22,13 @@
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>
|
<div>
|
||||||
<div v-if="scope.row.edit">
|
<div v-if="scope.row.edit">
|
||||||
<el-select
|
<el-select v-model="scope.row.projectId" placeholder="时间匹配的项目" class="filter-select" @change="
|
||||||
v-model="scope.row.projectId"
|
(val) => {
|
||||||
placeholder="时间匹配的项目"
|
getVersionList(val, scope.row);
|
||||||
class="filter-select"
|
}
|
||||||
@change="
|
">
|
||||||
(val) => {
|
<el-option v-for="item in projectListFilter" :key="item.projectId" :label="item.projectName"
|
||||||
getVersionList(val, scope.row);
|
:value="item.projectId" />
|
||||||
}
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in projectListFilter"
|
|
||||||
:key="item.projectId"
|
|
||||||
:label="item.projectName"
|
|
||||||
:value="item.projectId"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div v-show="!scope.row.edit">{{ scope.row.projectName }}</div>
|
<div v-show="!scope.row.edit">{{ scope.row.projectName }}</div>
|
||||||
|
@ -48,23 +39,14 @@
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>
|
<div>
|
||||||
<div v-if="scope.row.edit">
|
<div v-if="scope.row.edit">
|
||||||
<el-select
|
<el-select v-model="scope.row.versionId" placeholder="含有可选需求的版本" class="filter-select"
|
||||||
v-model="scope.row.versionId"
|
ref="versionSelectRef" @change="
|
||||||
placeholder="含有可选需求的版本"
|
|
||||||
class="filter-select"
|
|
||||||
ref="versionSelectRef"
|
|
||||||
@change="
|
|
||||||
(val) => {
|
(val) => {
|
||||||
getDemandList(val, scope.row);
|
getDemandList(val, scope.row);
|
||||||
}
|
}
|
||||||
"
|
">
|
||||||
>
|
<el-option v-for="item in versionList.filter((ele) => ele.type == 0)" :key="item.id" :label="item.title"
|
||||||
<el-option
|
:value="item.id" />
|
||||||
v-for="item in versionList.filter((ele) => ele.type == 0)"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.title"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div v-show="!scope.row.edit">{{ scope.row.versionNumber }}</div>
|
<div v-show="!scope.row.edit">{{ scope.row.versionNumber }}</div>
|
||||||
|
@ -75,19 +57,9 @@
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>
|
<div>
|
||||||
<div v-if="scope.row.edit">
|
<div v-if="scope.row.edit">
|
||||||
<el-select
|
<el-select v-model="scope.row.demandId" placeholder="时间匹配且非已结束的需求" class="filter-select"
|
||||||
v-model="scope.row.demandId"
|
@change="openContent(scope.row)" ref="demandSelectRef">
|
||||||
placeholder="时间匹配且非已结束的需求"
|
<el-option v-for="item in demandList" :key="item.id" :label="item.title" :value="item.id" />
|
||||||
class="filter-select"
|
|
||||||
@change="openContent(scope.row)"
|
|
||||||
ref="demandSelectRef"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in demandList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.title"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div v-show="!scope.row.edit">{{ scope.row.title }}</div>
|
<div v-show="!scope.row.edit">{{ scope.row.title }}</div>
|
||||||
|
@ -97,38 +69,20 @@
|
||||||
<el-table-column label="工作内容" prop="workContent">
|
<el-table-column label="工作内容" prop="workContent">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div @click="openContent(scope.row)">
|
<div @click="openContent(scope.row)">
|
||||||
<el-popover
|
<el-popover placement="bottom" width="400" trigger="click" v-model="scope.row.showContent"
|
||||||
placement="bottom"
|
:key="scope.row.loggerId">
|
||||||
width="400"
|
<el-input type="textarea" :rows="5" placeholder="请输入内容" v-model="scope.row.workContent"
|
||||||
trigger="click"
|
:disabled="!scope.row.edit">
|
||||||
v-model="scope.row.showContent"
|
|
||||||
:key="scope.row.loggerId"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
type="textarea"
|
|
||||||
:rows="5"
|
|
||||||
placeholder="请输入内容"
|
|
||||||
v-model="scope.row.workContent"
|
|
||||||
:disabled="!scope.row.edit"
|
|
||||||
>
|
|
||||||
</el-input>
|
</el-input>
|
||||||
<div
|
<div style="margin-top: 10px; text-align: right" v-show="!disableTable && scope.row.edit">
|
||||||
style="margin-top: 10px; text-align: right"
|
<el-button type="primary" @click="saveContent(scope.row, 1)">确认</el-button>
|
||||||
v-show="!disableTable && scope.row.edit"
|
|
||||||
>
|
|
||||||
<el-button type="primary" @click="saveContent(scope.row, 1)"
|
|
||||||
>确认</el-button
|
|
||||||
>
|
|
||||||
<el-button @click="saveContent(scope.row, 0)">取消</el-button>
|
<el-button @click="saveContent(scope.row, 0)">取消</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div slot="reference">
|
<div slot="reference">
|
||||||
<div
|
<div style="cursor: pointer" :class="{
|
||||||
style="cursor: pointer"
|
contentText: true,
|
||||||
:class="{
|
noneText: !scope.row.workContent,
|
||||||
contentText: true,
|
}">
|
||||||
noneText: !scope.row.workContent,
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
{{ scope.row.workContent || "请输入" }}
|
{{ scope.row.workContent || "请输入" }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -141,19 +95,8 @@
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>
|
<div>
|
||||||
<div v-if="scope.row.edit">
|
<div v-if="scope.row.edit">
|
||||||
<el-select
|
<el-select v-model="scope.row.workTime" placeholder="请选择工时" class="filter-select" filterable allow-create>
|
||||||
v-model="scope.row.workTime"
|
<el-option v-for="item in workTimeList" :key="item" :label="item" :value="item" />
|
||||||
placeholder="请选择工时"
|
|
||||||
class="filter-select"
|
|
||||||
filterable
|
|
||||||
allow-create
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in workTimeList"
|
|
||||||
:key="item"
|
|
||||||
:label="item"
|
|
||||||
:value="item"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div v-show="!scope.row.edit">{{ scope.row.workTime }}</div>
|
<div v-show="!scope.row.edit">{{ scope.row.workTime }}</div>
|
||||||
|
@ -166,102 +109,80 @@
|
||||||
<el-button type="text" @click="handleFile(scope.row)">
|
<el-button type="text" @click="handleFile(scope.row)">
|
||||||
附件详情
|
附件详情
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="text" @click="handleEdit(scope.row)" v-show="!disableTable">
|
<el-button type="text" @click="handleEdit(scope.row)" v-show="!disableTable">
|
||||||
{{ scope.row.loggerId && !scope.row.edit ? "编辑" : "确认" }}
|
{{ scope.row.loggerId && !scope.row.edit ? "编辑" : "确认" }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button
|
<el-button type="text" @click="handleDelete(scope.row, scope.$index)" style="color: #666"
|
||||||
type="text"
|
v-show="!disableTable">
|
||||||
@click="handleDelete(scope.row, scope.$index)"
|
|
||||||
style="color: #666"
|
|
||||||
v-show="!disableTable"
|
|
||||||
>
|
|
||||||
{{ scope.row.loggerId && !scope.row.edit ? "删除" : "取消" }}
|
{{ scope.row.loggerId && !scope.row.edit ? "删除" : "取消" }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-dialog
|
<el-dialog title="附件" :visible.sync="dialogVisibleFile" width="780px" :close-on-click-modal="false">
|
||||||
title="附件"
|
|
||||||
:visible.sync="dialogVisibleFile"
|
|
||||||
width="780px"
|
|
||||||
:close-on-click-modal="false"
|
|
||||||
>
|
|
||||||
<div v-loading="fileLoading">
|
<div v-loading="fileLoading">
|
||||||
<div v-show="!disableTable">
|
<div v-show="!disableTable">
|
||||||
<el-upload
|
<el-upload class="upload-demo" ref="upload" :action="fileUpload" :show-file-list="false" :auto-upload="true"
|
||||||
class="upload-demo"
|
:multiple="true" :before-upload="beforeUpload" :on-success="successUpload" :headers="{
|
||||||
ref="upload"
|
|
||||||
:action="fileUpload"
|
|
||||||
:show-file-list="false"
|
|
||||||
:auto-upload="true"
|
|
||||||
:multiple="true"
|
|
||||||
:before-upload="beforeUpload"
|
|
||||||
:on-success="successUpload"
|
|
||||||
:headers="{
|
|
||||||
Authorization: 'Bearer ' + token,
|
Authorization: 'Bearer ' + token,
|
||||||
}"
|
}" :data="{}">
|
||||||
:data="{}"
|
|
||||||
>
|
|
||||||
<div class="flex-row aic" style="gap: 10px; margin-bottom: 10px">
|
<div class="flex-row aic" style="gap: 10px; margin-bottom: 10px">
|
||||||
<el-button
|
<el-button slot="trigger" size="small" type="default"
|
||||||
slot="trigger"
|
style="width: 80px; color: #333; font-weight: 500">上传附件</el-button>
|
||||||
size="small"
|
|
||||||
type="default"
|
|
||||||
style="width: 80px; color: #333; font-weight: 500"
|
|
||||||
>上传附件</el-button
|
|
||||||
>
|
|
||||||
<div slot="tip" style="color: #999999; font-size: 12px">
|
<div slot="tip" style="color: #999999; font-size: 12px">
|
||||||
单个附件限制100M
|
单个附件限制100M
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="fileList" style="width: 100%" class="tableBox">
|
<div style="height: 500px;overflow: auto;">
|
||||||
<el-table-column label="名称" prop="fileNewName">
|
<el-table :data="fileList" style="width: 100%;height: 100%;" class="tableBox">
|
||||||
<template #default="scope">
|
<el-table-column label="名称" prop="fileNewName">
|
||||||
<div class="flex-row aic fileBox" style="gap: 10px;">
|
<template #default="scope">
|
||||||
<img class="" :src="filePng" v-if="getFileType(scope.row.fileNewName)=='file'"> </img>
|
<div class="flex-row aic fileBox" style="gap: 10px;">
|
||||||
<img class="" :src="imagePng" v-else-if="getFileType(scope.row.fileNewName)=='image'"> </img>
|
<img class="" :src="filePng" v-if="getFileType(scope.row.fileNewName) == 'file'"> </img>
|
||||||
<img class="" :src="zipPng" v-else-if="getFileType(scope.row.fileNewName)=='zip'"> </img>
|
<img class="" :src="imagePng" v-else-if="getFileType(scope.row.fileNewName) == 'image'"> </img>
|
||||||
<div class="downFileBox" @click="downFile(scope.row.fileUrl)">
|
<img class="" :src="zipPng" v-else-if="getFileType(scope.row.fileNewName) == 'zip'"> </img>
|
||||||
{{ scope.row.fileNewName }}
|
<div class="downFileBox" @click="downFile(scope.row.fileUrl)">
|
||||||
|
{{ scope.row.fileNewName }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="类型" prop="fileName">
|
||||||
<el-table-column label="类型" prop="fileName">
|
<template #default="scope">
|
||||||
<template #default="scope">
|
<div>
|
||||||
<div>
|
{{ scope.row.fileNewName.split(".")[1] }}
|
||||||
{{ scope.row.fileNewName.split(".")[1] }}
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="上传时间" prop="createTime">
|
||||||
<el-table-column label="上传时间" prop="createTime">
|
<template #default="scope">
|
||||||
<template #default="scope">
|
<div>
|
||||||
<div>
|
{{
|
||||||
{{
|
scope.row.createTime || moment().format("YYYY-MM-DD HH:mm:ss")
|
||||||
scope.row.createTime || moment().format("YYYY-MM-DD HH:mm:ss")
|
}}
|
||||||
}}
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
<el-table-column label="操作" width="120">
|
||||||
<el-table-column label="操作" width="120">
|
<template #default="scope">
|
||||||
<template #default="scope">
|
<div>
|
||||||
<div>
|
<el-button type="text" @click="delFile(scope.row)" v-show="!disableTable">
|
||||||
<el-button type="text" @click="delFile(scope.row)" v-show="!disableTable">
|
删除
|
||||||
删除
|
</el-button>
|
||||||
</el-button>
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</template>
|
</el-table-column>
|
||||||
</el-table-column>
|
</el-table>
|
||||||
</el-table>
|
|
||||||
<div slot="footer" class="dialog-footer">
|
|
||||||
<el-button @click="cancalFile">取消</el-button>
|
|
||||||
<el-button type="primary" @click="saveFile">确定</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div slot="footer" class="dialog-footer" v-show="!disableTable">
|
||||||
|
<el-button @click="cancalFile">取消</el-button>
|
||||||
|
<el-button type="primary" @click="saveFile">确定</el-button>
|
||||||
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -305,7 +226,7 @@ export default {
|
||||||
filePng,
|
filePng,
|
||||||
zipPng,
|
zipPng,
|
||||||
imagePng,
|
imagePng,
|
||||||
delFileArr:[]
|
delFileArr: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -330,7 +251,7 @@ export default {
|
||||||
ele.showContent = false;
|
ele.showContent = false;
|
||||||
return ele;
|
return ele;
|
||||||
});
|
});
|
||||||
if (this.tableData.length == 0&&!this.disableTable) {
|
if (this.tableData.length == 0 && !this.disableTable) {
|
||||||
this.handleAdd();
|
this.handleAdd();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -352,7 +273,7 @@ export default {
|
||||||
this.$emit("changeCaleder");
|
this.$emit("changeCaleder");
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => { });
|
||||||
} else if (!row.loggerId) {
|
} else if (!row.loggerId) {
|
||||||
this.tableData = this.tableData.filter((ele, ind) => index != ind);
|
this.tableData = this.tableData.filter((ele, ind) => index != ind);
|
||||||
} else {
|
} else {
|
||||||
|
@ -408,10 +329,10 @@ export default {
|
||||||
await workLogApi.addLog(param);
|
await workLogApi.addLog(param);
|
||||||
this.$emit("changeCaleder");
|
this.$emit("changeCaleder");
|
||||||
}
|
}
|
||||||
if(this.delFileArr.length){
|
if (this.delFileArr.length) {
|
||||||
systemApi.delFile({ids:this.delFileArr}).then((res) => {
|
systemApi.delFile({ ids: this.delFileArr }).then((res) => {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.delFileArr=[]
|
this.delFileArr = []
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.$modal.msgSuccess("操作成功");
|
this.$modal.msgSuccess("操作成功");
|
||||||
|
@ -465,27 +386,27 @@ export default {
|
||||||
this.dialogVisibleFile = false;
|
this.dialogVisibleFile = false;
|
||||||
this.fileList = [];
|
this.fileList = [];
|
||||||
},
|
},
|
||||||
async saveFile() {
|
async saveFile() {
|
||||||
this.dialogVisibleFile = false;
|
this.dialogVisibleFile = false;
|
||||||
this.checkRow.fileList = this.fileList;
|
this.checkRow.fileList = this.fileList;
|
||||||
if(this.checkRow.loggerId){
|
if (this.checkRow.loggerId) {
|
||||||
await workLogApi.editLog(this.checkRow);
|
await workLogApi.editLog(this.checkRow);
|
||||||
if(this.delFileArr.length){
|
if (this.delFileArr.length) {
|
||||||
systemApi.delFileBatch(this.delFileArr.join(',')).then((res) => {
|
systemApi.delFileBatch(this.delFileArr.join(',')).then((res) => {
|
||||||
this.fileList = []
|
this.fileList = []
|
||||||
this.delFileArr=[]
|
this.delFileArr = []
|
||||||
this.getLogList();
|
this.getLogList();
|
||||||
|
|
||||||
});
|
});
|
||||||
}else{
|
} else {
|
||||||
this.getLogList();
|
this.getLogList();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.$message({
|
this.$message({
|
||||||
type: "success",
|
type: "success",
|
||||||
message: "保存成功!",
|
message: "保存成功!",
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async getAllProject() {
|
async getAllProject() {
|
||||||
const response = await projectApi.listProject({
|
const response = await projectApi.listProject({
|
||||||
|
@ -592,21 +513,21 @@ export default {
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.delFileArr.push(row.id)
|
this.delFileArr.push(row.id)
|
||||||
this.fileList = this.fileList.filter(
|
this.fileList = this.fileList.filter(
|
||||||
(ele) => ele.fileNewName != row.fileNewName
|
(ele) => ele.fileNewName != row.fileNewName
|
||||||
);
|
);
|
||||||
this.$message({
|
this.$message({
|
||||||
type:'success',
|
type: 'success',
|
||||||
message: "删除成功!"
|
message: "删除成功!"
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.fileList = this.fileList.filter(
|
this.fileList = this.fileList.filter(
|
||||||
(ele) => ele.fileNewName != row.fileNewName
|
(ele) => ele.fileNewName != row.fileNewName
|
||||||
);
|
);
|
||||||
this.$message({
|
this.$message({
|
||||||
type:'success',
|
type: 'success',
|
||||||
message: "删除成功!"
|
message: "删除成功!"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getFileType(name) {
|
getFileType(name) {
|
||||||
|
@ -648,7 +569,7 @@ export default {
|
||||||
this.tableData = [];
|
this.tableData = [];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
versionList(newVal) {},
|
versionList(newVal) { },
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
projectListFilter() {
|
projectListFilter() {
|
||||||
|
@ -683,45 +604,54 @@ export default {
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.topBox {
|
.topBox {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|
||||||
.topTitle {
|
.topTitle {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.topText {
|
.topText {
|
||||||
color: #999999;
|
color: #999999;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
margin: 0 5px;
|
margin: 0 5px;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.contentText {
|
.contentText {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
|
|
||||||
.noneText {
|
.noneText {
|
||||||
color: #999;
|
color: #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
.downFileBox {
|
.downFileBox {
|
||||||
color: #1686d8;
|
color: #1686d8;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.fileBox{
|
|
||||||
img{
|
.fileBox {
|
||||||
|
img {
|
||||||
height: 18px;
|
height: 18px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-footer {
|
.dialog-footer {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|
Loading…
Reference in New Issue