Commit 16ae4865 authored by wangwei's avatar wangwei

任务看板修改

parent c348f5a7
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=never><link rel=stylesheet href=https:////at.alicdn.com/t/font_746649_x1rivf5f5.css><link rel=stylesheet href=https://unpkg.com/element-ui@2.4.9/lib/theme-chalk/index.css><title>唱唱启蒙-后台</title></head><body><script src=https://unpkg.com/vue@2.5.17/dist/vue.js></script><script src=https://unpkg.com/vuex@3.0.1/dist/vuex.min.js></script><script src=https://unpkg.com/axios@0.18.0/dist/axios.min.js></script><script src=https://unpkg.com/element-ui@2.4.9/lib/index.js></script><div id=app></div><script type=text/javascript src=/static/js/manifest.040d62fd2d6ee46fc3fd.js></script><script type=text/javascript src=/static/js/vendor.19b07206259747695190.js></script><script type=text/javascript src=/static/js/app.72d338797308d851576a.js></script></body><script>let el = document.getElementsByTagName("script");
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=never><link rel=stylesheet href=https:////at.alicdn.com/t/font_746649_x1rivf5f5.css><link rel=stylesheet href=https://unpkg.com/element-ui@2.4.9/lib/theme-chalk/index.css><title>唱唱启蒙-后台</title></head><body><script src=https://unpkg.com/vue@2.5.17/dist/vue.js></script><script src=https://unpkg.com/vuex@3.0.1/dist/vuex.min.js></script><script src=https://unpkg.com/axios@0.18.0/dist/axios.min.js></script><script src=https://unpkg.com/element-ui@2.4.9/lib/index.js></script><div id=app></div><script type=text/javascript src=/static/js/manifest.6fef20210240fa49c4a8.js></script><script type=text/javascript src=/static/js/vendor.19b07206259747695190.js></script><script type=text/javascript src=/static/js/app.72d338797308d851576a.js></script></body><script>let el = document.getElementsByTagName("script");
el.onerror = function(a,b,c){
console.log('error:',a,b,c);
};
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(f,b,n){for(var r,t,o,i=0,u=[];i<f.length;i++)t=f[i],a[t]&&u.push(a[t][0]),a[t]=0;for(r in b)Object.prototype.hasOwnProperty.call(b,r)&&(e[r]=b[r]);for(c&&c(f,b,n);u.length;)u.shift()();if(n)for(i=0;i<n.length;i++)o=d(d.s=n[i]);return o};var f={},a={54:0};function d(c){if(f[c])return f[c].exports;var a=f[c]={i:c,l:!1,exports:{}};return e[c].call(a.exports,a,a.exports,d),a.l=!0,a.exports}d.e=function(e){var c=a[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var f=new Promise(function(f,d){c=a[e]=[f,d]});c[2]=f;var b=document.getElementsByTagName("head")[0],n=document.createElement("script");n.type="text/javascript",n.charset="utf-8",n.async=!0,n.timeout=12e4,d.nc&&n.setAttribute("nonce",d.nc),n.src=d.p+"static/js/"+e+"."+{0:"6572628c7f1e9a78b944",1:"13ecc92254166c2b45a6",2:"f2a06db15d213b608870",3:"f699bde9ea78c2369d7e",4:"25316e7d3f0819488250",5:"3f83b1af222f5a136eca",6:"95d7291c675382fe87c1",7:"fc753f558b39e6fe49c9",8:"cd8c166d314d7d6181cd",9:"b1b1fde138d45bfc25d2",10:"3f2164813ca748580385",11:"74fffc59d2b8ab639671",12:"5faa8c6fe93dd8318f6c",13:"5f3e53db5146d925a973",14:"095625c5ff57d0774602",15:"dfb974c4f18e203f717d",16:"e0551b536bb51e474bc9",17:"1a566fff237fd73182c7",18:"e921a577887de038df89",19:"5f0e5a8b123730833389",20:"1523dee6e75b5eeaee70",21:"d14e131c4b4983543f0c",22:"eee5ae7b25c0c9ba76db",23:"7636b0f88d1c1e5dcfde",24:"1ab0904dacff98c8be22",25:"a895cfaaf3538fc9d453",26:"2dc6ee3466c889c57317",27:"c096be33c7355e51f462",28:"70b0b4cf287b5b056886",29:"64f3d097b888469617a6",30:"0320595f56926c7eb86d",31:"8f5bbc0412d546335db6",32:"bf6ecc8dc5ed1336b225",33:"3b0ffb1fae55c57ecd2a",34:"6ec9b3fbbe91ad8b68e5",35:"d8cbbb94eba78aae5204",36:"da81b57fd678c10e3c7e",37:"055874e8ba8f293f4d0c",38:"d73f1b27521fa4569eb8",39:"fb2822aa5110c15c3d31",40:"cb7e7f070738f432d0b5",41:"9b9dc4d455282a10fc45",42:"b44529aaa35c8b216c7e",43:"03627096aa6c9e8cbc7c",44:"7d222355fa25f3d50691",45:"f002ee4b50549513cd1e",46:"737cb2db82f1793a8f73",47:"55e9f020a22f300bbb70",48:"a7d5dd30041d9587e338",49:"5063a876a0e5fcfc2d58",50:"a97af822fd1c8ab3dc1c",51:"e069a842df53d1309e99"}[e]+".js";var r=setTimeout(t,12e4);function t(){n.onerror=n.onload=null,clearTimeout(r);var c=a[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),a[e]=void 0)}return n.onerror=n.onload=t,b.appendChild(n),f},d.m=e,d.c=f,d.d=function(e,c,f){d.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:f})},d.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(c,"a",c),c},d.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},d.p="/",d.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=never><link rel=stylesheet href=https:////at.alicdn.com/t/font_746649_x1rivf5f5.css><link rel=stylesheet href=https://unpkg.com/element-ui@2.4.9/lib/theme-chalk/index.css><title>唱唱启蒙-后台</title><link href=/static/css/app.f478ccbc6da97c393a9830415569025f.css rel=stylesheet></head><body><script src=https://unpkg.com/vue@2.5.17/dist/vue.js></script><script src=https://unpkg.com/vuex@3.0.1/dist/vuex.min.js></script><script src=https://unpkg.com/axios@0.18.0/dist/axios.min.js></script><script src=https://unpkg.com/element-ui@2.4.9/lib/index.js></script><div id=app></div><script type=text/javascript src=/static/js/manifest.299d9a3f9aa66dce5a52.js></script><script type=text/javascript src=/static/js/vendor.dabb3afa5856b271bc7f.js></script><script type=text/javascript src=/static/js/app.b44a659fceb1c1bcc783.js></script></body><script>let el = document.getElementsByTagName("script");
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=never><link rel=stylesheet href=https:////at.alicdn.com/t/font_746649_x1rivf5f5.css><link rel=stylesheet href=https://unpkg.com/element-ui@2.4.9/lib/theme-chalk/index.css><title>唱唱启蒙-后台</title><link href=/static/css/app.8988da64525ee60d8743a717a57e8915.css rel=stylesheet></head><body><script src=https://unpkg.com/vue@2.5.17/dist/vue.js></script><script src=https://unpkg.com/vuex@3.0.1/dist/vuex.min.js></script><script src=https://unpkg.com/axios@0.18.0/dist/axios.min.js></script><script src=https://unpkg.com/element-ui@2.4.9/lib/index.js></script><div id=app></div><script type=text/javascript src=/static/js/manifest.5c4691017c5eec02e0e1.js></script><script type=text/javascript src=/static/js/vendor.dabb3afa5856b271bc7f.js></script><script type=text/javascript src=/static/js/app.b44a659fceb1c1bcc783.js></script></body><script>let el = document.getElementsByTagName("script");
el.onerror = function(a,b,c){
console.log('error:',a,b,c);
};
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
!function(e){var f=window.webpackJsonp;window.webpackJsonp=function(a,n,r){for(var t,d,o,i=0,u=[];i<a.length;i++)d=a[i],c[d]&&u.push(c[d][0]),c[d]=0;for(t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t]);for(f&&f(a,n,r);u.length;)u.shift()();if(r)for(i=0;i<r.length;i++)o=b(b.s=r[i]);return o};var a={},c={54:0};function b(f){if(a[f])return a[f].exports;var c=a[f]={i:f,l:!1,exports:{}};return e[f].call(c.exports,c,c.exports,b),c.l=!0,c.exports}b.e=function(e){var f=c[e];if(0===f)return new Promise(function(e){e()});if(f)return f[2];var a=new Promise(function(a,b){f=c[e]=[a,b]});f[2]=a;var n=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.timeout=12e4,b.nc&&r.setAttribute("nonce",b.nc),r.src=b.p+"static/js/"+e+"."+{0:"a08890f19f59a6a3f974",1:"70bc42dbc1ffaed57988",2:"8d64c4f32108e29e828a",3:"3568759f1bb116066146",4:"f9b1c86fb172be37a9ec",5:"0770f442fbcafb9fbb6b",6:"64c83c697625efbfcaf9",7:"06e4c19733dffde6057a",8:"ed8ef396b51f943534c5",9:"95a10d5f8ad39ee47e8a",10:"901693097383eee4bb36",11:"f5785a1ae295125740f3",12:"8b62f9b9a60d674eac10",13:"19e3e554d1402ec008f9",14:"8c6f084e6255fbeded32",15:"7360d785ee332f5a4bb8",16:"377ce2b3eca0c3a88598",17:"ff8ef6eecfc24eaead59",18:"524fb6b2da79f077570f",19:"aaff5cb99e110a714ee1",20:"f45c5a602b2535d93d24",21:"3f9f11c97fb1e1427b87",22:"bb30e982e20decdf5597",23:"c594ea4a37322f8c7840",24:"ed17cab90908135eaffa",25:"fd6fb9d57686c26eb406",26:"ce23bfb9282a66c186c4",27:"bbf8405accf1afcd5be3",28:"c9bbffb9c2a6b58702da",29:"ac117b295bb4de6f3a14",30:"e9270346ac5a37b40765",31:"89ee2c867b096e88eecb",32:"18bd09ea1758c434e68b",33:"207f09ca5117a438027d",34:"3f43f058bf9441d0d79f",35:"37496d6823ff5bb7139f",36:"9da1921ac78c17085d92",37:"a9288b9ae1825f0a2aef",38:"b15e9a6506cc91cb36b7",39:"6dbe195c28187681cf8d",40:"0a7bd580c27c12e2babf",41:"43efb089718547897e5a",42:"f932e4cf13c0ebde02f0",43:"cb3aaae7ea0ea31fe041",44:"820b288e99876613dbbe",45:"093e400e86b53f46d09a",46:"d724b95e520c7e948730",47:"76f0d426db5ba9283455",48:"b163cd5e2750e3f00800",49:"fd79c4e277dbe5de3809",50:"1d6101cb1433a7f1e23a",51:"5bdb0d5bedd939cc3016"}[e]+".js";var t=setTimeout(d,12e4);function d(){r.onerror=r.onload=null,clearTimeout(t);var f=c[e];0!==f&&(f&&f[1](new Error("Loading chunk "+e+" failed.")),c[e]=void 0)}return r.onerror=r.onload=d,n.appendChild(r),a},b.m=e,b.c=a,b.d=function(e,f,a){b.o(e,f)||Object.defineProperty(e,f,{configurable:!1,enumerable:!0,get:a})},b.n=function(e){var f=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(f,"a",f),f},b.o=function(e,f){return Object.prototype.hasOwnProperty.call(e,f)},b.p="/",b.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -199,16 +199,7 @@
<el-table-column
label="意向等级" sortable min-width="95" prop="weight">
<template slot-scope="scope">
<el-select v-model="scope.row.weight" size="mini" @change="changeWeight(scope.row)">
<el-option label="0" :value="0">
</el-option>
<el-option label="1" :value="1">
</el-option>
<el-option label="2" :value="2">
</el-option>
<el-option label="3" :value="3">
</el-option>
</el-select>
<user-weight :row="scope.row" @onSuccess="searchList"></user-weight>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right">
......@@ -446,6 +437,7 @@
import pageDesc from '../framework/page'
import {ISORNOT} from "../../util/wordbook";
import teacherDesc from '../framework/teacherDesc'
import userWeight from '../framework/userWeight'
export default {
name: "userList",
......@@ -551,6 +543,7 @@
page,
page2,
teacherDesc,
userWeight,
pageDesc
},
filters:{
......
<template>
<div>
<el-select v-model="weight" size="mini" @change="changeWeight(row)">
<el-option label="0" :value="0">
</el-option>
<el-option label="1" :value="1">
</el-option>
<el-option label="2" :value="2">
</el-option>
<el-option label="3" :value="3">
</el-option>
<el-option label="无法成为意向" :value="100">
</el-option>
</el-select>
</div>
</template>
<script>
import {editUserWeightApi} from "../../service/api";
export default {
name: "userWeight",
props:[
'row'
],
data(){
return {
weight:this.row.weight
}
},
methods:{
changeWeight(data){
this.$prompt('标记意向或非意向的原因', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(({ value }) => {
editUserWeightApi(data.id,this.weight,{desc:value}).then(()=>{
this.$message({
type:'success',
message:'数据更改成功'
});
this.$emit('onSuccess')
})
}).catch(() => {
this.weight = this.row.weight
})
},
},
watch:{
'row.weight'(value){
this.weight = value
}
}
}
</script>
<style scoped>
</style>
......@@ -114,12 +114,12 @@
prop="name"
label="意向标记">
<template slot-scope="scope">
回复率:<el-progress
标记率:<el-progress
style="display: inline-block;width: 120px"
:text-inside="true"
:stroke-width="18"
:color="Number(scope.row.over_reply_rate)===100 ? '#67C23A' : '#f00'"
:percentage="Number(scope.row.over_reply_rate)?Number(scope.row.over_reply_rate):0">
:color="Number(scope.row.over_intention_rate)===100 ? '#67C23A' : '#f00'"
:percentage="Number(scope.row.over_intention_rate)?Number(scope.row.over_intention_rate):0">
</el-progress>
<br>
处理率:<el-progress
......
This diff is collapsed.
......@@ -13,8 +13,7 @@
</el-table-column>
</el-table>
</el-card>
<el-dialog append-to-body :visible.sync="task2Detail.show"
:title="task2Detail.title" width="80%">
<el-dialog append-to-body :visible.sync="task2Detail.show" :title="task2Detail.title" width="80%">
<el-table
:data="task2Detail.list"
size="mini"
......@@ -25,6 +24,11 @@
<br> Tel:{{scope.row.mobile}}
</template>
</el-table-column>
<el-table-column label="期数" align="center">
<template slot-scope="scope">
{{scope.row.periods_id}}{{scope.row.periods_title}}
</template>
</el-table-column>
<el-table-column
min-width="160"
label="沟通情况">
......@@ -35,16 +39,20 @@
<el-table-column
label="意向等级" min-width="95" prop="weight">
<template slot-scope="scope">
<el-select v-model="scope.row.weight" size="mini" @change="changeWeight(scope.row)">
<el-option label="0" :value="0">
</el-option>
<el-option label="1" :value="1">
</el-option>
<el-option label="2" :value="2">
</el-option>
<el-option label="3" :value="3">
</el-option>
</el-select>
<user-weight :row="scope.row" @onSuccess="refDesc2"></user-weight>
</template>
</el-table-column> <el-table-column
prop="last_watch_at"
label="最后标注时间">
<template slot-scope="scope">
{{scope.row.last_watch_at?scope.row.last_watch_at:'-'}}
</template>
</el-table-column>
<el-table-column
prop="last_weight_desc"
label="标注意向原因">
<template slot-scope="scope">
{{scope.row.last_weight_desc?scope.row.last_weight_desc:'-'}}
</template>
</el-table-column>
<el-table-column label="操作" width="200px" fixed="right">
......@@ -124,12 +132,13 @@
</template>
<script>
import {task2Api,getOverWatchListApi,editUserWeightApi,userLookApi} from "../../service/api";
import {task2Api,editUserWeightApi,userLookApi} from "../../service/api";
import teacherDesc from '../framework/teacherDesc'
import userWeight from '../framework/userWeight'
export default {
name: "task2",
props:['teacherId'],
components: {teacherDesc},
components: {teacherDesc,userWeight},
data(){
return {
task2List:[],
......@@ -203,7 +212,6 @@
this.task2Detail.type = 1;
},
refDesc2(){
if(this.task2Detail.type === 1){
task2Api(this.teacherId).then(res=>{
this.task2List = res;
res.forEach(i=>{
......@@ -212,12 +220,6 @@
}
})
});
}else if(this.task2Detail.type === 2) {
getOverWatchListApi(this.task2Detail.periods_id,this.teacherId,{}).then(res=>{
this.task2Detail.loading = false;
this.task2Detail.list = res
})
}
},
}
}
......
This diff is collapsed.
......@@ -877,8 +877,8 @@ export const editExchangeApi = function (id, json) {
// 修改用户意向等级
const editUserWeightUrl = `/api/admin/class/user/weight/`;
export const editUserWeightApi = function (id, weight) {
return Vue.prototype.$put(editUserWeightUrl + id + '/' + weight)
export const editUserWeightApi = function (id, weight,json) {
return Vue.prototype.$put(editUserWeightUrl + id + '/' + weight,json)
};
// 修改用户看课权限
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment