walter 8 months ago
parent
commit
e178832567

+ 1 - 1
src/components/SelectRule.vue

@@ -8,7 +8,7 @@
         <div class="flex-box-ce">
             <el-checkbox style="margin-left: 12px;"  v-if="isAll" v-model="checkedAll" @change="checkedChange">全选</el-checkbox>
             <div class="flex-1"></div>
-            <el-input type="text" prefix-icon="el-icon-search" class="search"  style="width: 250px;margin-bottom: 10px;" placeholder="输入关键字搜索" v-model.trim="keyword"/>
+            <el-input type="text" prefix-icon="el-icon-search" class="search"  style="width: 250px;margin-bottom: 10px;" placeholder="输入关键字搜索" v-model.trim="keyword" clearable/>
         </div>
         <div style="height: 430px;overflow-y: scroll;" class="scroll-bar">
           <div class="flex-box-ce" style="background-color: #ECF5FF;padding: 10px 0;border-bottom: 1px solid #EBEEF5;width:500px">

+ 1 - 1
src/performance/components/flow/Examine.vue

@@ -54,7 +54,7 @@
             </el-form-item>
             <el-form-item label="审批人多人时:" v-if="item.type!=3">
               <el-radio-group v-model="item.multi_executor">
-                <el-radio :label="1">依次确认</el-radio>
+                <el-radio :label="1">依次审批</el-radio>
                 <el-radio :label="2">任一人审批</el-radio>
                 <el-radio :label="3">均需审批</el-radio>
               </el-radio-group>

+ 1 - 1
src/performance/views/assessManagement/IndexSet.vue

@@ -63,7 +63,7 @@
         <div class="main-right">
           <div class="fontColorB flex-box flex-d-center">
             <div>{{ typeName }}</div>
-            <div><el-checkbox v-model="enableDs_checked">只看已开启【加入统计项】的指标</el-checkbox></div>
+<!--            <div><el-checkbox v-model="enableDs_checked">只看已开启【加入统计项】的指标</el-checkbox></div>-->
           </div>
           <el-table :data="indexList" v-loading="loading" class="table-box scroll-bar" @selection-change="handleSelectionChange" @row-click="rowClick">
             <el-table-column type="selection"></el-table-column>

+ 6 - 0
src/point/views/common/AppealPopup.vue

@@ -519,6 +519,7 @@ export default {
           if (res.data.code === 1){
             self.hasSubmit = true
             self.getAppealInfo()
+            self.$message.success(res.data.msg)
             self.showReviewRefuse = false
           }else {
             self.$message.error(res.data.msg)
@@ -541,6 +542,7 @@ export default {
           if (res.data.code === 1){
             self.hasSubmit = true
             self.getAppealInfo()
+            self.$message.success(res.data.msg)
             self.showReviewRejectRewrite = false
           }else {
             self.$message.error(res.data.msg)
@@ -559,6 +561,7 @@ export default {
           if (res.data.code === 1){
             self.hasSubmit = true
             self.getAppealInfo()
+            self.$message.success(res.data.msg)
           }else {
             self.$message.error(res.data.msg)
           }
@@ -577,6 +580,7 @@ export default {
           if (res.data.code === 1){
             self.hasSubmit = true
             self.getAppealInfo()
+            self.$message.success(res.data.msg)
           }else {
             this.$message.error(res.data.msg)
           }
@@ -599,6 +603,7 @@ export default {
           if (res.data.code === 1){
             self.hasSubmit = true
             self.getAppealInfo()
+            self.$message.success(res.data.msg)
             self.showReviewSubmit = false
           }else {
             self.$message.error(res.data.msg)
@@ -621,6 +626,7 @@ export default {
           if (res.data.code === 1){
             self.hasSubmit = true
             self.getAppealInfo()
+            self.$message.success(res.data.msg)
             self.showReviewApproval = false
           }else {
             self.$message.error(res.data.msg)

+ 1 - 1
src/point/views/common/TaskUpdate.vue

@@ -53,7 +53,7 @@
         />
       </el-form-item>
       <el-form-item label="积分规则" prop="rule_item.remark" v-if="formData.rule_type === 2" :rules="[{required:true,message:'请选择积分规则'}]">
-        <el-input placeholder="请选择规则" v-model="formData.rule_item.remark" :disabled="true">
+        <el-input placeholder="请选择规则" v-model="formData.rule_item.remark" readonly @focus="showRuleItems = true">
           <el-button slot="append" icon="el-icon-search" @click.stop="showRuleItems = true"/>
         </el-input>
         <i style="color: red">{{itemRemark}}</i>

+ 1 - 1
src/point/views/common/WorkUpdate.vue

@@ -54,7 +54,7 @@
       </el-form-item>
 
       <el-form-item label="积分规则" prop="rule_item.remark" v-if="formData.rule_type === 2" :rules="[{required:true,message:'请选择积分规则'}]">
-        <el-input placeholder="请选择规则" v-model="formData.rule_item.remark" :disabled="true">
+        <el-input placeholder="请选择规则" v-model="formData.rule_item.remark" readonly @focus="showRuleItems = true">
           <el-button slot="append" icon="el-icon-search" @click.stop="showRuleItems = true"/>
         </el-input>
         <i style="color: red">{{itemRemark}}</i>

+ 29 - 7
src/point/views/common/examinePopup.vue

@@ -73,21 +73,20 @@
           </el-descriptions>
           <el-descriptions
             direction="vertical"
-            :column="3"
+            :column="1"
             border
             v-if="detail_info.item_name"
-            :label-style="{textAlign:'center'}"
-            :content-style="{textAlign:'center'}"
+            :label-style="{textAlign:'center',width:'100px'}"
+            :content-style="{textAlign:'center',maxWidth:'200px'}"
           >
             <template slot="title">
               <p class="row_title">规则依据</p>
               <span class="row_tips" style="font-size:12px;color:#909399">此事件打分参考以下积分规则</span>
             </template>
-            <el-descriptions-item label="事件分类">
+            <el-descriptions-item label="规则分类">
               <el-popover
                 placement="bottom"
-                title="事件分类"
-                width="500"
+                title="规则分类"
                 trigger="click"
                 :content="detail_info.rule_name"
               >
@@ -98,7 +97,6 @@
               <el-popover
                 placement="bottom"
                 title="事件分类"
-                width="500"
                 trigger="click"
                 :content="detail_info.item_name"
               >
@@ -116,6 +114,30 @@
               </template>
             </el-descriptions-item>
           </el-descriptions>
+          <el-descriptions
+            direction="vertical"
+            :column="1"
+            border
+            v-else-if="detail_info.rule_name"
+            :label-style="{textAlign:'center'}"
+            :content-style="{textAlign:'center'}"
+          >
+            <template slot="title">
+              <p class="row_title">规则依据</p>
+              <span class="row_tips" style="font-size:12px;color:#909399">此事件打分参考以下积分规则</span>
+            </template>
+            <el-descriptions-item label="规则分类">
+              <el-popover
+                placement="bottom"
+                title="规则分类"
+                width="500"
+                trigger="click"
+                :content="detail_info.rule_name"
+              >
+                <div slot="reference" style="cursor: pointer" class="desc-content">{{detail_info.rule_name}}</div>
+              </el-popover>
+            </el-descriptions-item>
+          </el-descriptions>
 
           <div v-show="detail_info.process">
             <Steps :process="detail_info.process"></Steps>

+ 43 - 0
src/point/views/common/repeatTaskDetailsPopup.vue

@@ -221,9 +221,48 @@
                 </div>
               </div>
             </el-descriptions-item>
+          </el-descriptions>
 
+          <el-descriptions
+            v-if="workDetailData.item_info"
+            style="margin-top: 20px"
+            title="规则依据"
+            direction="vertical"
+            :column="1"
+            size="small"
+            :label-style="{width:'80px',textAlign:'center'}"
+            :content-style="{width:'80px',textAlign: 'center'}"
+            border
+          >
+            <el-descriptions-item label="规则">{{workDetailData.item_info.remark}}</el-descriptions-item>
+            <el-descriptions-item label="积分">{{pointRemark}}</el-descriptions-item>
+            <el-descriptions-item label="规则状态" v-if="workDetailData.item_info.has_delete">
+              <el-tag type="warning">规则已删除</el-tag>
+            </el-descriptions-item>
+            <el-descriptions-item v-if="workDetailData.rule_info" label="分类">{{workDetailData.rule_info.name}}</el-descriptions-item>
+            <el-descriptions-item v-if="workDetailData.rule_info && workDetailData.rule_info.has_delete" label="分类状态">
+              <el-tag type="warning">分类已删除</el-tag>
+            </el-descriptions-item>
+          </el-descriptions>
 
+          <el-descriptions
+            v-else-if="workDetailData.rule_info"
+            style="margin-top: 20px"
+            title="规则分类"
+            direction="vertical"
+            :column="1"
+            size="small"
+            :label-style="{width:'80px',textAlign:'center'}"
+            :content-style="{width:'80px',textAlign: 'center'}"
+            border
+          >
+            <el-descriptions-item label="分类">{{workDetailData.rule_info.name}}</el-descriptions-item>
+            <el-descriptions-item label="分类状态" v-if="workDetailData.rule_info.has_delete">
+              <el-tag type="warning">分类已删除</el-tag>
+            </el-descriptions-item>
           </el-descriptions>
+
+
         </el-card>
 
 
@@ -267,6 +306,10 @@ export default {
   computed:{
     scheduleTypeMark(){
       return !this.workDetailData ? '--' : (this.workDetailData.type === 2 ? '悬赏' : '任务')
+    },
+    pointRemark(){
+      if (!(this.workDetailData && this.workDetailData.item_info)) return ''
+      return this.workDetailData.item_info.range_type === 1 ? `${this.workDetailData.item_info.min_point} ${this.$getTypsName(this.workDetailData.item_info.pt_id)}` : `${this.workDetailData.item_info.min_point} -- ${this.workDetailData.item_info.max_point} ${this.$getTypsName(this.workDetailData.item_info.pt_id)}`
     }
   },
   mounted() {

+ 1 - 1
src/point/views/common/rewardTask.vue

@@ -36,7 +36,7 @@
             />
           </el-form-item>
           <el-form-item label="积分规则" prop="rule_item.remark" v-if="formData.rule_type === 2" :rules="[{required:true,message:'请选择积分规则'}]">
-            <el-input placeholder="请选择规则" v-model="formData.rule_item.remark" :disabled="true">
+            <el-input placeholder="请选择规则" v-model="formData.rule_item.remark" readonly @focus="showRuleItems = true">
               <el-button slot="append" icon="el-icon-search" @click.stop="showRuleItems = true"/>
             </el-input>
             <i style="color: red">{{itemRemark}}</i>

+ 8 - 2
src/point/views/common/rewardTaskDetailsPopup.vue

@@ -157,6 +157,12 @@
                 <el-tag>全公司可见</el-tag>
               </div>
             </el-descriptions-item>
+            <el-descriptions-item
+              v-if="workDetailData.reviewer_name"
+              label="审批人"
+            >
+              {{workDetailData.reviewer_name}}
+            </el-descriptions-item>
             <el-descriptions-item label="任务类型">{{ workDetailData.source_type_mark }}</el-descriptions-item>
           </el-descriptions>
 
@@ -165,7 +171,7 @@
             style="margin-top: 20px"
             title="规则依据"
             direction="vertical"
-            :column="2"
+            :column="1"
             size="small"
             :label-style="{width:'80px',textAlign:'center'}"
             :content-style="{width:'80px',textAlign: 'center'}"
@@ -187,7 +193,7 @@
             style="margin-top: 20px"
             title="规则分类"
             direction="vertical"
-            :column="2"
+            :column="1"
             size="small"
             :label-style="{width:'80px',textAlign:'center'}"
             :content-style="{width:'80px',textAlign: 'center'}"

+ 12 - 5
src/point/views/common/taskDetailsPopup.vue

@@ -106,7 +106,7 @@
             style="margin-top: 20px"
             title="规则依据"
             direction="vertical"
-            :column="2"
+            :column="1"
             size="small"
             :label-style="{width:'80px',textAlign:'center'}"
             :content-style="{width:'80px',textAlign: 'center'}"
@@ -128,7 +128,7 @@
             style="margin-top: 20px"
             title="规则分类"
             direction="vertical"
-            :column="2"
+            :column="1"
             size="small"
             :label-style="{width:'80px',textAlign:'center'}"
             :content-style="{width:'80px',textAlign: 'center'}"
@@ -206,7 +206,7 @@
                         <i class="el-icon-delete"  v-if="item.recorder_id == userId" @click="deleteItem(item,index)"></i>
                     </div>
                   </div>
-                  <div v-if="point_list.length == 0" class="fontColorC" style="text-align: center;">暂无分记录</div>
+                  <div v-if="point_list.length == 0" class="fontColorC" style="text-align: center;">暂无分记录</div>
                 </div>
               </el-tab-pane>
             </el-tabs>
@@ -233,7 +233,7 @@
     <el-dialog :close-on-click-modal="false" title="记一条" :visible.sync="isOne" :before-close="publicClose" width="40%">
       <div class="flex-box">
         <div style="width: 80px;">工作记录</div>
-        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
+        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="textarea" @input="onTextareaInput"></el-input>
       </div>
       <span slot="footer">
         <el-button @click="publicClose()">取消</el-button>
@@ -244,7 +244,7 @@
     <el-dialog :close-on-click-modal="false" title="记分" :visible.sync="isIntegral" :before-close="publicClose" width="40%">
       <el-form :model="integral" ref="integral" label-width="80px">
         <el-form-item label="记录" prop="text" :rules="[{ required: true, message: '记录不能为空' }]">
-          <el-input type="textarea" :rows="3" v-model="integral.text"></el-input>
+          <el-input type="textarea" :rows="3" v-model="integral.text" @input="onIntegralTextInput"></el-input>
         </el-form-item>
         <el-form-item label="记分" prop="num" :rules="[{ required: true, message: '记分不能为空' }, { type: 'number', message: '积分必须为数字值' }]">
           <div class="num" :class="[integral.type == '1' ? 'add' : 'jian']"></div>
@@ -267,6 +267,7 @@
 
 <script>
 import Template from "../../../examine/components/Template.vue";
+import {specialFilter} from "../../../utils";
 
 export default {
   name: 'taskDetailsPopup',
@@ -356,6 +357,12 @@ export default {
     });
   },
   methods: {
+    onTextareaInput(val){
+      this.textarea = specialFilter(val)
+    },
+    onIntegralTextInput(val){
+      this.integral.text = specialFilter(val)
+    },
     deleteItem(obj,index){
       this.$confirm('此操作将永久删除记录, 是否继续?', '提示', {
         confirmButtonText: '确定',

+ 1 - 1
src/point/views/common/temporaryTask.vue

@@ -36,7 +36,7 @@
             />
           </el-form-item>
           <el-form-item label="积分规则" prop="rule_item.remark" v-if="formData.rule_type === 2" :rules="[{required:true,message:'请选择积分规则'}]">
-            <el-input placeholder="请选择规则" v-model="formData.rule_item.remark" :disabled="true">
+            <el-input placeholder="请选择规则" v-model="formData.rule_item.remark" readonly @focus="showRuleItems = true">
               <el-button slot="append" icon="el-icon-search" @click.stop="showRuleItems = true"/>
             </el-input>
             <i style="color: red">{{itemRemark}}</i>

+ 22 - 15
src/point/views/pointHome.vue

@@ -113,25 +113,32 @@
                     />
 
                     <div
-                      v-if="item.rank == 4 || item.rank == 5"
+                      v-if="item.rank > 3"
                       style="z-index:1;position: absolute;left: 28px;top: -14px;width:24px;height:24px;border:1px solid #C0C4CC;border-radius:50%;background-color:#fff;font-size:12px; line-height:24px;color:#303133;text-align:center;"
                     >
                       <b style="">{{ item.rank }}</b>
                     </div>
-                    <div
-                      v-if="item.employee_id == user_infos.id && index == 0 && item.rank > 3"
-                      style="z-index:1;position: absolute;left: 28px;top: -14px;width:24px;height:24px;border:1px solid #C0C4CC;border-radius:50%;background-color:#fff;font-size:12px;text-align:center;line-height:24px;color:#303133;"
-                    >
-                      <b>{{ item.rank }}</b>
-                    </div>
-                    <div style="position: absolute;left: 10px;top: -16px;z-index:2;">
-                      <div
-                        v-if="index == 5 || index == 6"
-                        style="width:60px;height:24px;border:1px solid #C0C4CC;background-color:#fff;border-radius:20px;font-size:12px;color:#303133;text-align:center;line-height:24px"
-                      >
-                        <b>{{ index == 5 ? '倒数第2' : index == 6 ? '倒数第1' : '' }}</b>
-                      </div>
-                    </div>
+
+<!--                    <div-->
+<!--                      v-if="item.rank == 4 || item.rank == 5"-->
+<!--                      style="z-index:1;position: absolute;left: 28px;top: -14px;width:24px;height:24px;border:1px solid #C0C4CC;border-radius:50%;background-color:#fff;font-size:12px; line-height:24px;color:#303133;text-align:center;"-->
+<!--                    >-->
+<!--                      <b style="">{{ item.rank }}</b>-->
+<!--                    </div>-->
+<!--                    <div-->
+<!--                      v-if="item.employee_id == user_infos.id && index == 0 && item.rank > 3"-->
+<!--                      style="z-index:1;position: absolute;left: 28px;top: -14px;width:24px;height:24px;border:1px solid #C0C4CC;border-radius:50%;background-color:#fff;font-size:12px;text-align:center;line-height:24px;color:#303133;"-->
+<!--                    >-->
+<!--                      <b>{{ item.rank }}</b>-->
+<!--                    </div>-->
+<!--                    <div style="position: absolute;left: 10px;top: -16px;z-index:2;">-->
+<!--                      <div-->
+<!--                        v-if="index == 5 || index == 6"-->
+<!--                        style="width:60px;height:24px;border:1px solid #C0C4CC;background-color:#fff;border-radius:20px;font-size:12px;color:#303133;text-align:center;line-height:24px"-->
+<!--                      >-->
+<!--                        <b>{{ index == 5 ? '倒数第2' : index == 6 ? '倒数第1' : '' }}</b>-->
+<!--                      </div>-->
+<!--                    </div>-->
                     <userImage :id="item.employee_id" :img_url="item.employee_img_url" fontSize="16" :user_name="item.employee_name" width="60px" height="60px"></userImage>
                   </div>
                   <span

+ 2 - 2
src/point/views/setting/pk.vue

@@ -243,7 +243,7 @@ export default {
       },
       docFormValidateRules:{
         name: [
-          {required: true,message:'请输入档案名称'},
+          {required: true,message:'请输入PK名'},
           { min: 3, max: 10, message: '长度在 3 到 10 个字符'}
         ]
       },
@@ -382,7 +382,7 @@ export default {
       this.showDoc = true;
     },
     deleteDoc(){
-      this.$confirm('确认删除当前档案吗?','删除档案',{confirmButtonText:'确定',cancelButtonText:'取消',type:"warning"}).then(() => {
+      this.$confirm('确认删除当前配置吗?','删除PK配置',{confirmButtonText:'确定',cancelButtonText:'取消',type:"warning"}).then(() => {
           this.commitDeleteDoc();
       })
     },

+ 4 - 1
src/point/views/setting/rule_manage.vue

@@ -4,7 +4,8 @@
     <el-alert class="diy-tip"  type="success"  description show-icon>
       <strong style="font-size: 14px;">积分规则是什么?如何制定?<span class="blue cursor" @click="$openUrl(16)">查看视频</span> </strong>
       <p>添加规则时请先【添加规则分类】,再【添加规则】;或者直接【导入规则】</p>
-      <p>当前系统只允许提交如下内容:数字、中文、英文字母、空格以及以下特殊字符<code>:,.!@{}[]()<>-_</code></p>
+      <p>当前系统只允许提交如下内容:数字、中文、英文字母、空格以及以下特殊字符</p>
+      <p>+:、,.!@$#%*={}:,。!()【】《》;¥??’”</p>
     </el-alert>
 
     <!-- 中间内容 -->
@@ -838,9 +839,11 @@ export default {
             if (this.dept_ids.length > 0) {
               this.dept_formdata.dep_ids = JSON.stringify(this.dept_ids);
             }
+            let ruleName = this.dept_formdata.name
             this.$axiosUser('put', '/api/pro/integral/rule', this.dept_formdata).then(res => {
               if (res.data.code == 1) {
                 this.$message.success('修改积分规则成功');
+                this.dept_name = ruleName
                 this.get_department_list(function() {});
               }
             });

+ 203 - 68
src/point/views/workbench/task/get_task.vue

@@ -23,7 +23,7 @@
           <el-table-column label="截止时间" prop="expire_time" width="200"></el-table-column>
           <el-table-column label="操作" prop="owner_id" v-if="!$supremeAuthority('creator')" width="120">
             <template slot-scope="scope">
-              <el-link v-if="scope.row.owner_id!=$userInfo().id" type="primary">领取任务</el-link>
+              <el-link v-if="scope.row.owner_id!=$userInfo().id && scope.row.reviewer_id != $userInfo().id" type="primary">领取任务</el-link>
             </template>
           </el-table-column>
           <template slot="empty">
@@ -68,79 +68,205 @@
       </center>
 
       <el-drawer :custom-class="'drawer_details'" :visible.sync="detailShow" :with-header="false" size="500px">
-        <div class="details_title">任务详情</div>
+        <div class="details_title">悬赏信息</div>
         <div class="details_content" v-loading="detail_loading">
-          <div style="border-bottom:1px #f8f8f8 solid;padding-bottom: 10px;margin-bottom: 10px;" class="flex-box-ce">
-              <userImage
-                :user_name="active == 'unclaimed' ? detailInfo.owner_name : detailInfo.receiver_name"
-                :id="active == 'unclaimed' ? detailInfo.owner_id : detailInfo.receiver_id"
-                :img_url="active == 'unclaimed' ? detailInfo.owner_img_url : detailInfo.receiver_img_url"
-                class="fl"
-                width="50px"
-                height="50px"
-                fontSize="15"
-              ></userImage>
-              <div class="flex-1" style="padding-left: 10px;">
-                <div class="flex-box-ce" style="margin-bottom: 4px;">
-                  <div class="flex-1" style="font-size: 16px;font-weight: 700;">
-                    {{ active == 'unclaimed' ? detailInfo.owner_name : detailInfo.receiver_name }}{{active == 'unclaimed' ? `悬赏的${$getTypsName(detailInfo.pt_id)}任务`:`领取的${$getTypsName(detailInfo.pt_id)}任务`}}
-                  </div>
-                  <div>
-                    <span class="color_red point" v-show="detailInfo.point_config.base_point >= 0">+{{ detailInfo.point_config.base_point }}</span>
-                    <span class="color_green point" v-show="detailInfo.point_config.base_point < 0">{{ detailInfo.point_config.base_point }}</span>
-                  </div>
-                </div>
-                <div class="orange">{{detailInfo.status_mark}}</div>
-              </div>
-          </div>
+<!--          <div style="border-bottom:1px #f8f8f8 solid;padding-bottom: 10px;margin-bottom: 10px;" class="flex-box-ce">-->
+<!--              <userImage-->
+<!--                :user_name="active == 'unclaimed' ? detailInfo.owner_name : detailInfo.receiver_name"-->
+<!--                :id="active == 'unclaimed' ? detailInfo.owner_id : detailInfo.receiver_id"-->
+<!--                :img_url="active == 'unclaimed' ? detailInfo.owner_img_url : detailInfo.receiver_img_url"-->
+<!--                class="fl"-->
+<!--                width="50px"-->
+<!--                height="50px"-->
+<!--                fontSize="15"-->
+<!--              ></userImage>-->
+<!--              <div class="flex-1" style="padding-left: 10px;">-->
+<!--                <div class="flex-box-ce" style="margin-bottom: 4px;">-->
+<!--                  <div class="flex-1" style="font-size: 16px;font-weight: 700;">-->
+<!--                    {{ active == 'unclaimed' ? detailInfo.owner_name : detailInfo.receiver_name }}{{active == 'unclaimed' ? `悬赏的${$getTypsName(detailInfo.pt_id)}任务`:`领取的${$getTypsName(detailInfo.pt_id)}任务`}}-->
+<!--                  </div>-->
+<!--                  <div>-->
+<!--                    <span class="color_red point" v-show="detailInfo.point_config.base_point >= 0">+{{ detailInfo.point_config.base_point }}</span>-->
+<!--                    <span class="color_green point" v-show="detailInfo.point_config.base_point < 0">{{ detailInfo.point_config.base_point }}</span>-->
+<!--                  </div>-->
+<!--                </div>-->
+<!--                <div class="orange">{{detailInfo.status_mark}}</div>-->
+<!--              </div>-->
+<!--          </div>-->
+
+<!--          <el-row v-if="detailInfo.task_name !== ''">-->
+<!--            <el-col :span="4">任务内容</el-col>-->
+<!--            <el-col :span="20">{{ detailInfo.task_name }}</el-col>-->
+<!--          </el-row>-->
+
+<!--          <el-row v-if="detailInfo.task_remark !== ''">-->
+<!--            <el-col :span="4">任务备注</el-col>-->
+<!--            <el-col :span="20">{{ detailInfo.task_remark }}</el-col>-->
+<!--          </el-row>-->
 
-          <el-row v-if="detailInfo.task_name !== ''">
-            <el-col :span="4">任务内容</el-col>
-            <el-col :span="20">{{ detailInfo.task_name }}</el-col>
-          </el-row>
+<!--          <el-row v-if="detailInfo.type_mark !== ''">-->
+<!--            <el-col :span="4">任务类型</el-col>-->
+<!--            <el-col :span="20">{{ detailInfo.type_mark }}</el-col>-->
+<!--          </el-row>-->
 
-          <el-row v-if="detailInfo.task_remark !== ''">
-            <el-col :span="4">任务备注</el-col>
-            <el-col :span="20">{{ detailInfo.task_remark }}</el-col>
-          </el-row>
+<!--          <el-row v-if="$getTypsName(detailInfo.pt_id) !== ''">-->
+<!--            <el-col :span="4">积分类型</el-col>-->
+<!--            <el-col :span="20">{{ $getTypsName(detailInfo.pt_id) }}</el-col>-->
+<!--          </el-row>-->
+<!--          <el-row v-if="detailInfo.create_time !== ''">-->
+<!--            <el-col :span="4">发布时间</el-col>-->
+<!--            <el-col :span="20">{{ detailInfo.create_time }}</el-col>-->
+<!--          </el-row>-->
+<!--          <el-row v-if="detailInfo.expire_time !== ''">-->
+<!--            <el-col :span="4">截止时间</el-col>-->
+<!--            <el-col :span="20">{{ detailInfo.expire_time }}</el-col>-->
+<!--          </el-row>-->
+<!--          <el-row v-if="detailInfo.reviewer_name">-->
+<!--            <el-col :span="4">审批人</el-col>-->
+<!--            <el-col :span="20">{{ detailInfo.reviewer_name }}</el-col>-->
+<!--          </el-row>-->
+<!--          <el-row v-if="detailInfo.owner_name">-->
+<!--            <el-col :span="4">发布人</el-col>-->
+<!--            <el-col :span="20">{{ detailInfo.owner_name }}</el-col>-->
+<!--          </el-row>-->
+<!--          <el-row v-if="detailInfo.task_file_list !== null && detailInfo.task_file_list.length !== 0">-->
+<!--            <el-col :span="4">图片附件</el-col>-->
+<!--            <el-col :span="20">-->
+<!--              <el-image-->
+<!--              v-for="(item,index) in detailInfo.task_file_list"-->
+<!--              :key="index"-->
+<!--              style="width: 100px; height: 100px; margin-right:10px"-->
+<!--              :src="item"-->
+<!--              :preview-src-list="detailInfo.task_file_list"></el-image>-->
+<!--              </el-col>-->
+<!--          </el-row>-->
+
+          <el-card shadow="always">
+            <template slot="header">
+              <div class="flex-box-ce">
+                <userImage
+                  :user_name="active == 'unclaimed' ? detailInfo.owner_name : detailInfo.receiver_name"
+                  :id="active == 'unclaimed' ? detailInfo.owner_id : detailInfo.receiver_id"
+                  :img_url="active == 'unclaimed' ? detailInfo.owner_img_url : detailInfo.receiver_img_url"
+                  class="fl"
+                  width="50px"
+                  height="50px"
+                  fontSize="15"
+                />
+                <div>
+                  {{detailInfo.owner_name}}
+                  {{ $getTypsName(detailInfo.pt_id) }}任务
+                  <el-tag>{{ detailInfo.point_config.base_point }}分</el-tag>
+                  <el-tag type="info">{{ detailInfo.receiver_name }}{{ detailInfo.status_mark }}</el-tag>
+                </div>
+              </div>
+            </template>
+            <el-descriptions
+              title="任务信息"
+              direction="vertical"
+              :column="2"
+              size="small"
+              :label-style="{width:'80px',textAlign:'center'}"
+              :content-style="{width:'80px',textAlign: 'center'}"
+              border
+            >
+              <el-descriptions-item label="任务内容">{{detailInfo.task_name}}</el-descriptions-item>
+              <el-descriptions-item
+                v-if="detailInfo.receiver_id !== 0"
+                :label="detailInfo.status == 3 ? '完成人' : '领取人'"
+              >{{detailInfo.receiver_name}}
+              </el-descriptions-item>
+              <el-descriptions-item
+                v-if="detailInfo.task_remark"
+                label="任务备注"
+              >{{detailInfo.task_remark}}
+              </el-descriptions-item>
+              <el-descriptions-item
+                v-if="detailInfo.point_config"
+                label="任务积分"
+              >
+                {{ detailInfo.point_config.base_point }}{{ $getTypsName(detailInfo.pt_id) }}
+              </el-descriptions-item>
+              <el-descriptions-item label="发布时间">{{detailInfo.create_time}}</el-descriptions-item>
+              <el-descriptions-item label="截止时间">{{detailInfo.end_time}}</el-descriptions-item>
+              <el-descriptions-item
+                v-if="detailInfo.point_config && detailInfo.point_config.timeout_deduction_point"
+                label="逾期扣分"
+              >
+                {{ detailInfo.point_config.timeout_deduction_point }}/天
+              </el-descriptions-item>
+              <el-descriptions-item
+                v-if="detailInfo.point_config && detailInfo.point_config.ahead_award_point"
+                label="提前奖分"
+              >
+                {{ detailInfo.point_config.ahead_award_point }}/天
+              </el-descriptions-item>
+              <el-descriptions-item
+                v-if="detailInfo.department_info"
+                label="可见范围"
+              >
+                <div class="content_text" v-if="detailInfo.department_info.length > 0">
+                <span
+                  v-for="(item, index) in detailInfo.department_info"
+                  :key="index"
+                >
+                  {{ item.name }}&nbsp;
+                </span>
+                </div>
+                <div v-else >
+                  <el-tag>全公司可见</el-tag>
+                </div>
+              </el-descriptions-item>
+              <el-descriptions-item
+                v-if="detailInfo.reviewer_name"
+                label="审批人"
+              >
+                {{detailInfo.reviewer_name}}
+              </el-descriptions-item>
+              <el-descriptions-item label="任务类型">{{ detailInfo.source_type_mark }}</el-descriptions-item>
+            </el-descriptions>
 
-          <el-row v-if="detailInfo.type_mark !== ''">
-            <el-col :span="4">任务类型</el-col>
-            <el-col :span="20">{{ detailInfo.type_mark }}</el-col>
-          </el-row>
+            <el-descriptions
+              v-if="detailInfo.item_info"
+              style="margin-top: 20px"
+              title="规则依据"
+              direction="vertical"
+              :column="2"
+              size="small"
+              :label-style="{width:'80px',textAlign:'center'}"
+              :content-style="{width:'80px',textAlign: 'center'}"
+              border
+            >
+              <el-descriptions-item label="规则">{{detailInfo.item_info.remark}}</el-descriptions-item>
+              <el-descriptions-item label="积分">{{pointRemark}}</el-descriptions-item>
+              <el-descriptions-item label="规则状态" v-if="detailInfo.item_info.has_delete">
+                <el-tag type="warning">规则已删除</el-tag>
+              </el-descriptions-item>
+              <el-descriptions-item v-if="detailInfo.rule_info" label="分类">{{detailInfo.rule_info.name}}</el-descriptions-item>
+              <el-descriptions-item v-if="detailInfo.rule_info && detailInfo.rule_info.has_delete" label="分类状态">
+                <el-tag type="warning">分类已删除</el-tag>
+              </el-descriptions-item>
+            </el-descriptions>
 
-          <el-row v-if="$getTypsName(detailInfo.pt_id) !== ''">
-            <el-col :span="4">积分类型</el-col>
-            <el-col :span="20">{{ $getTypsName(detailInfo.pt_id) }}</el-col>
-          </el-row>
-          <el-row v-if="detailInfo.create_time !== ''">
-            <el-col :span="4">发布时间</el-col>
-            <el-col :span="20">{{ detailInfo.create_time }}</el-col>
-          </el-row>
-          <el-row v-if="detailInfo.expire_time !== ''">
-            <el-col :span="4">截止时间</el-col>
-            <el-col :span="20">{{ detailInfo.expire_time }}</el-col>
-          </el-row>
-          <el-row v-if="detailInfo.reviewer_name">
-            <el-col :span="4">审批人</el-col>
-            <el-col :span="20">{{ detailInfo.reviewer_name }}</el-col>
-          </el-row>
-          <el-row v-if="detailInfo.owner_name">
-            <el-col :span="4">发布人</el-col>
-            <el-col :span="20">{{ detailInfo.owner_name }}</el-col>
-          </el-row>
-          <el-row v-if="detailInfo.task_file_list !== null && detailInfo.task_file_list.length !== 0">
-            <el-col :span="4">图片附件</el-col>
-            <el-col :span="20">
-              <el-image
-              v-for="(item,index) in detailInfo.task_file_list"
-              :key="index"
-              style="width: 100px; height: 100px; margin-right:10px"
-              :src="item"
-              :preview-src-list="detailInfo.task_file_list"></el-image>
-              </el-col>
-          </el-row>
+            <el-descriptions
+              v-else-if="detailInfo.rule_info"
+              style="margin-top: 20px"
+              title="规则分类"
+              direction="vertical"
+              :column="2"
+              size="small"
+              :label-style="{width:'80px',textAlign:'center'}"
+              :content-style="{width:'80px',textAlign: 'center'}"
+              border
+            >
+              <el-descriptions-item label="分类">{{detailInfo.rule_info.name}}</el-descriptions-item>
+              <el-descriptions-item label="分类状态" v-if="detailInfo.rule_info.has_delete">
+                <el-tag type="warning">分类已删除</el-tag>
+              </el-descriptions-item>
+            </el-descriptions>
+          </el-card>
         </div>
+
         <div class="drawer-footer flex-box-end flex-v-ce" v-if="detailInfo.status == '1' && user_id != detailInfo.owner_id && detailInfo.reviewer_id != user_id">
           <el-button plain @click="detailShow = false">取消</el-button>
           <el-button type="primary" @click="collectTask" :loading="receiveLoad">领取任务</el-button>
@@ -151,8 +277,11 @@
 </template>
 
 <script>
+import Template from "../../../../examine/components/Template.vue";
+
 export default {
   name: 'get_task',
+  components: {Template},
   data() {
     return {
       active: 'unclaimed',
@@ -173,6 +302,12 @@ export default {
       user_id: this.$store.getters.user_info.id
     };
   },
+  computed:{
+    pointRemark(){
+      if (!(this.detailInfo && this.detailInfo.item_info)) return ''
+      return this.detailInfo.item_info.range_type === 1 ? `${this.detailInfo.item_info.min_point} ${this.$getTypsName(this.detailInfo.item_info.pt_id)}` : `${this.detailInfo.item_info.min_point} -- ${this.detailInfo.item_info.max_point} ${this.$getTypsName(this.detailInfo.item_info.pt_id)}`
+    }
+  },
   mounted() {
     this.get_list();
   },

+ 1 - 1
src/utils/index.js

@@ -324,5 +324,5 @@ export function uniqueArr(arr) {
 
 
 export function specialFilter(inputStr){
-  return inputStr.replace(/[^(\w\d\s\u4e00-\u9fa5+:、,.!@$#%*={}:,。!()【】《》;¥?’”\-\(\)\[\])]/g,"")
+  return inputStr.replace(/[^(\w\d\s\u4e00-\u9fa5+:、,.!@$#%*={}:,。!()【】《》;¥??’”\-\(\)\[\])]/g,"")
 }