|
@@ -38,7 +38,7 @@
|
|
|
size="mini"
|
|
size="mini"
|
|
|
:cell-style="cellStyle"
|
|
:cell-style="cellStyle"
|
|
|
@cell-click="cellClick"
|
|
@cell-click="cellClick"
|
|
|
- @cell-dblclick="cellDbclick"
|
|
|
|
|
|
|
+ @cell-dblclick="cellDbClick"
|
|
|
@row-click="rowClick"
|
|
@row-click="rowClick"
|
|
|
height="calc(100vh - 140px)"
|
|
height="calc(100vh - 140px)"
|
|
|
border>
|
|
border>
|
|
@@ -114,7 +114,7 @@
|
|
|
<div>{{ form.feedbackDate }}</div>
|
|
<div>{{ form.feedbackDate }}</div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="反馈类型" prop="feedbackType">
|
|
<el-form-item label="反馈类型" prop="feedbackType">
|
|
|
- <el-radio-group v-model="form.feedbackType">
|
|
|
|
|
|
|
+ <el-radio-group v-model="form.feedbackType" @input="feedbackTypeChange">
|
|
|
<el-radio label="1">进度反馈</el-radio>
|
|
<el-radio label="1">进度反馈</el-radio>
|
|
|
<el-radio label="2">完成</el-radio>
|
|
<el-radio label="2">完成</el-radio>
|
|
|
<el-radio label="3">终止</el-radio>
|
|
<el-radio label="3">终止</el-radio>
|
|
@@ -124,11 +124,11 @@
|
|
|
<el-form-item label="进度" prop="value">
|
|
<el-form-item label="进度" prop="value">
|
|
|
<el-input-number v-model="form.value" :min="1" :max="100"></el-input-number>
|
|
<el-input-number v-model="form.value" :min="1" :max="100"></el-input-number>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="附件">
|
|
|
|
|
|
|
+ <el-form-item label="附件" prop="fileUrl">
|
|
|
<file-upload @getFileUrl="getFileUrl" @removeFile="removeFile"></file-upload>
|
|
<file-upload @getFileUrl="getFileUrl" @removeFile="removeFile"></file-upload>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="反馈描述" prop="description">
|
|
<el-form-item label="反馈描述" prop="description">
|
|
|
- <el-input v-model="form.description" type="textarea"/>
|
|
|
|
|
|
|
+ <el-input v-model="form.description" type="textarea" autosize/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
@@ -163,6 +163,16 @@ const statusMap = {
|
|
|
export default {
|
|
export default {
|
|
|
components: {TaskDetail, FileUpload},
|
|
components: {TaskDetail, FileUpload},
|
|
|
data() {
|
|
data() {
|
|
|
|
|
+ let validateValue = (rule, value, callback) => {
|
|
|
|
|
+ if (this.form.feedbackType != '1' && this.form.feedbackType != '2') {
|
|
|
|
|
+ return callback();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!value) {
|
|
|
|
|
+ return callback(new Error('进度不能为空'));
|
|
|
|
|
+ }
|
|
|
|
|
+ return callback();
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
return {
|
|
return {
|
|
|
queryParams: {
|
|
queryParams: {
|
|
|
projectId: undefined,
|
|
projectId: undefined,
|
|
@@ -177,7 +187,18 @@ export default {
|
|
|
form: {},
|
|
form: {},
|
|
|
feedbacks: [],
|
|
feedbacks: [],
|
|
|
visible: false,
|
|
visible: false,
|
|
|
- rules: {},
|
|
|
|
|
|
|
+ rules: {
|
|
|
|
|
+ feedbackType: [
|
|
|
|
|
+ {required: true, message: "反馈类型不能为空", trigger: "change"}
|
|
|
|
|
+ ],
|
|
|
|
|
+ value: [
|
|
|
|
|
+ {validator: validateValue, trigger: 'blur'}
|
|
|
|
|
+ ],
|
|
|
|
|
+ description: [
|
|
|
|
|
+ {required: true, message: "反馈描述不能为空", trigger: "blur"},
|
|
|
|
|
+ {min: 3, max: 5, message: '长度在 3 到 500 个字符', trigger: 'blur'}
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
openDetail: false,
|
|
openDetail: false,
|
|
|
detailForm: {},
|
|
detailForm: {},
|
|
|
cellColorMap: {
|
|
cellColorMap: {
|
|
@@ -186,7 +207,7 @@ export default {
|
|
|
'3': '#f56c6c',
|
|
'3': '#f56c6c',
|
|
|
'4': '#67c23a',
|
|
'4': '#67c23a',
|
|
|
'5': '#e6a23c',
|
|
'5': '#e6a23c',
|
|
|
- }
|
|
|
|
|
|
|
+ },
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
created() {
|
|
created() {
|
|
@@ -201,9 +222,9 @@ export default {
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
getList() {
|
|
getList() {
|
|
|
- this.tableHeaders = this.getMonthDate(this.queryParams.month);
|
|
|
|
|
listView(this.queryParams).then(res => {
|
|
listView(this.queryParams).then(res => {
|
|
|
this.tableData = res.data
|
|
this.tableData = res.data
|
|
|
|
|
+ this.tableHeaders = this.getMonthDate(this.queryParams.month);
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
cellStyle({row, column, rowIndex, columnIndex}) {
|
|
cellStyle({row, column, rowIndex, columnIndex}) {
|
|
@@ -229,7 +250,7 @@ export default {
|
|
|
this.feedbacks = res.data
|
|
this.feedbacks = res.data
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
- cellDbclick(row, column, cell, event) {
|
|
|
|
|
|
|
+ cellDbClick(row, column, cell, event) {
|
|
|
if (!row[column.property].color || row[column.property].color === 'white') {
|
|
if (!row[column.property].color || row[column.property].color === 'white') {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -262,6 +283,13 @@ export default {
|
|
|
this.openDetail = true
|
|
this.openDetail = true
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
|
|
+ feedbackTypeChange(val) {
|
|
|
|
|
+ if (val === '2') {
|
|
|
|
|
+ this.form.value = 100
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.form.value = undefined
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
// 取消按钮
|
|
// 取消按钮
|
|
|
cancel() {
|
|
cancel() {
|
|
|
this.open = false;
|
|
this.open = false;
|