| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- <template>
- <div class="rule-type">
- <DialogCom
- @colse="onHide"
- :title="`外包评价${isEvaluate == 1 ? '查看' : ''}`"
- :visible.sync="isShow"
- width="1500px"
- >
- <!-- :visible.sync="isShow" -->
- <div class="page-body">
- <el-form
- :model="formData"
- size="small"
- ref="form"
- label-position="right"
- label-width="130px"
- label-prefix=":"
- >
- <el-row>
- <el-col :span="8">
- <el-form-item label="外包评价名称:">
- {{ formData.evaluateName }}
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="评价机构:">
- {{ formData.orgName }}
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="评价计划时间:">
- {{ formData.startTime + "-" }}{{ formData.endTime }}
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="状态:">
- {{ formData.status | filterStatus }}
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="评价周期:">
- {{ formData.evaluateCycle }}
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <!-- tableData -->
- <div class="line_box">
- <div class="line"></div>
- <div class="titleEvaluate">
- {{ isEvaluate == 1 ? "评价记录" : "评价内容" }}
- </div>
- </div>
- <el-form v-if="isEvaluate == 0">
- <el-row v-for="(item, index) in tableData" :key="item.id">
- <el-col :span="24">
- <el-form-item
- class="formItemTitle"
- :label="`${index + 1}.${item.content}`"
- >
- </el-form-item>
- </el-col>
- <!-- 文本 -->
- <el-col :span="24" v-if="item.contentType == 1">
- <el-form-item label=" ">
- <el-input
- type="textarea"
- :rows="2"
- :disabled="isEvaluate == '1'"
- placeholder="请输入内容"
- v-model="item.score"
- >
- </el-input>
- </el-form-item>
- </el-col>
- <!-- 评分 -->
- <el-col :span="24" v-else>
- <el-form-item label=" ">
- <el-rate
- :max="10"
- v-model="item.score"
- text-color="#ff9900"
- show-score
- score-template="{value}星"
- ></el-rate>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <div v-else>
- <el-form v-for="(item, index) in tableDataContentVOS" :key="item.id">
- <el-card class="box-card">
- <el-row>
- <el-col :span="12">
- <el-form-item label="评价时间"
- >{{ item.completeTime }}
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="评价人"
- >{{ item.evaluateBy }}
- </el-form-item>
- </el-col>
- </el-row>
- <el-row
- v-for="sonItem in item.coreEvaluateTaskContentList"
- :key="sonItem.code"
- >
- <el-col :span="24">
- <el-form-item
- class="formItemTitle"
- :label="`${sonItem.code}.${sonItem.content}`"
- >
- </el-form-item>
- </el-col>
- <!-- 文本 -->
- <el-col :span="24" v-if="sonItem.contentType == 1">
- <el-form-item label=" ">
- <span class="scoreText">
- {{ sonItem.score }}
- </span>
- </el-form-item>
- </el-col>
- <!-- 评分 -->
- <el-col :span="24" v-else>
- <el-form-item label=" ">
- <el-rate
- :max="10"
- v-model="sonItem.score"
- text-color="#ff9900"
- show-score
- score-template="{value}星"
- ></el-rate>
- </el-form-item>
- </el-col>
- </el-row>
- </el-card>
- </el-form>
- </div>
- </div>
- <div slot="footer" class="dialog-footer">
-
- <el-button type="primary" @click="onSubmit" v-if="isEvaluate == '0'"
- >确定</el-button
- >
- <el-button @click="onHide">取消</el-button>
- </div>
- </DialogCom>
- </div>
- </template>
- <script>
- import { mapGetters } from "vuex";
- import {
- getEvaluateById,
- editEvaluate,
- getevaluateByid,
- } from "@/api/core/evalulateTask.js";
- export default {
- data() {
- return {
- isEvaluate: "",
- tableData: [],
- tableDataContentVOS: [],
- id: null,
- isShow: false,
- formData: {},
- };
- },
- filters: {
- filterStatus(val) {
- switch (val) {
- case "0":
- return "待完成";
- break;
- case "1":
- return "进行中";
- break;
- case "2":
- return "已完成";
- break;
- case "3":
- return "已逾期";
- break;
- }
- },
- },
- computed: {
- ...mapGetters(["orgId", "orgName"]),
- },
- mounted() {},
- methods: {
- async show(id = "", isEvaluate) {
- this.id = id;
- this.tableData = [];
- this.tableDataContentVOS = [];
- this.isEvaluate = isEvaluate + "";
- // isEvaluate 1 查看 0 评价
- if (isEvaluate == 1) {
- await getevaluateByid(id).then((res) => {
- let { code, msg, data } = res;
- if (code == 200) {
- Object.assign(this.formData, data);
- this.tableDataContentVOS = data.coreEvaluateTaskUserContentVOS;
- this.tableDataContentVOS.forEach((item) => {
- item.coreEvaluateTaskContentList.forEach((i) => {
- if (i.contentType == 2) {
- i.score = +i.score;
- }
- });
- });
- console.log(this.tableDataContentVOS);
- delete this.formData.coreEvaluateTaskUserContentVOS;
- } else {
- this.$message.error(msg);
- }
- });
- } else {
- await getEvaluateById(id).then((res) => {
- let { code, msg, data } = res;
- if (code == 200) {
- Object.assign(this.formData, data);
- this.tableData = data.coreEvaluateContentList;
- delete this.formData.coreEvaluateContentList;
- } else {
- this.$message.error(msg);
- }
- });
- }
- this.isShow = true;
- },
- // 事件
- onHide() {
- this.$refs.form.resetFields();
- this.isShow = false;
- this.formData = {};
- this.tableData = [];
- },
- onSubmit() {
- console.log(this.tableData);
- let falg = false;
- this.tableData.forEach((item) => {
- if (!item.score) {
- falg = true;
- }
- });
- if (falg) {
- return this.$message.error("存在未评价的项,请检查!");
- }
- let obj = {
- id: this.formData.id,
- coreEvaluateTaskContentList: JSON.parse(JSON.stringify(this.tableData)),
- };
- obj.coreEvaluateTaskContentList.forEach((item) => {
- item.score = item.score + "";
- });
- editEvaluate(obj).then((res) => {
- let { code } = res;
- if (code == 200) {
- this.$emit("success");
- this.$message.success('评价成功')
- this.onHide();
- }
- });
- },
- },
- };
- </script>
- <style lang="scss" scoped>
- .brand_info {
- .el-form {
- width: 600px;
- padding-top: 40px;
- }
- }
- .line_box {
- display: flex;
- height: 20px;
- margin-bottom: 20px;
- .titleEvaluate {
- color: #008cd6;
- vertical-align: middle;
- }
- .line {
- height: 100%;
- width: 4px;
- margin-right: 10px;
- background-color: #008cd6;
- }
- }
- ::v-deep.formItemTitle {
- .el-form-item__label {
- font-size: 20px !important;
- color: black;
- }
- }
- .box-card {
- margin-bottom: 20px;
- .scoreText {
- font-size: 20px !important;
- }
- }
- .form-item-comment {
- font-size: 12px;
- color: #999;
- height: 10px;
- }
- </style>
|