外部投放

parent a307eae0
<!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://cdn.jsdelivr.net/npm/element-ui@2.4.9/lib/theme-chalk/index.css><title>唱唱启蒙-后台</title></head><body><script src=https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js></script><script src=https://cdn.jsdelivr.net/npm/vuex@3.0.1/dist/vuex.min.js></script><script src=https://cdn.jsdelivr.net/npm/axios@0.18.0/dist/axios.min.js></script><script src=https://cdn.jsdelivr.net/npm/element-ui@2.4.9/lib/index.js></script><div id=app></div><script type=text/javascript src=/static/js/manifest.8ffff66af83728afa908.js></script><script type=text/javascript src=/static/js/vendor.520caa645c172051b099.js></script><script type=text/javascript src=/static/js/app.daec36241a8d0586c711.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://cdn.jsdelivr.net/npm/element-ui@2.4.9/lib/theme-chalk/index.css><title>唱唱启蒙-后台</title></head><body><script src=https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js></script><script src=https://cdn.jsdelivr.net/npm/vuex@3.0.1/dist/vuex.min.js></script><script src=https://cdn.jsdelivr.net/npm/axios@0.18.0/dist/axios.min.js></script><script src=https://cdn.jsdelivr.net/npm/element-ui@2.4.9/lib/index.js></script><div id=app></div><script type=text/javascript src=/static/js/manifest.a248cf27003d27f790bd.js></script><script type=text/javascript src=/static/js/vendor.520caa645c172051b099.js></script><script type=text/javascript src=/static/js/app.daec36241a8d0586c711.js></script></body><script>let el = document.getElementsByTagName("script");
el.onerror = function(a,b,c){ el.onerror = function(a,b,c){
console.log('error:',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 source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var a=window.webpackJsonp;window.webpackJsonp=function(c,b,n){for(var r,t,o,i=0,u=[];i<c.length;i++)t=c[i],f[t]&&u.push(f[t][0]),f[t]=0;for(r in b)Object.prototype.hasOwnProperty.call(b,r)&&(e[r]=b[r]);for(a&&a(c,b,n);u.length;)u.shift()();if(n)for(i=0;i<n.length;i++)o=d(d.s=n[i]);return o};var c={},f={56:0};function d(a){if(c[a])return c[a].exports;var f=c[a]={i:a,l:!1,exports:{}};return e[a].call(f.exports,f,f.exports,d),f.l=!0,f.exports}d.e=function(e){var a=f[e];if(0===a)return new Promise(function(e){e()});if(a)return a[2];var c=new Promise(function(c,d){a=f[e]=[c,d]});a[2]=c;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:"ef3de0c11caff62931ff",1:"138337404053c7cd7019",2:"c328d06adc7ac7e64284",3:"2f186c37d6574b086298",4:"059ca7c142d3d8481359",5:"533eebc8d015c5c93845",6:"ef2f7fb68f10b64be607",7:"60156628fb3ecea020c2",8:"85b6fe06267b11873800",9:"09523bba6af5134fcfac",10:"e8a1473ea634e12b615a",11:"3cf44e3e37b9aeaaf375",12:"74c12f74597904d09a2f",13:"ad016823eec839e73d7f",14:"1c3ae16bff7ea2cb7abc",15:"b737a588a1280b1b04d4",16:"a0d8305d2d064b546842",17:"72e867d245e70fdc0e87",18:"70a796e054cdf56e22c8",19:"05e06cd00d2d741a5e87",20:"2f66ad6f78e92df6b47f",21:"237275afa8b480da884d",22:"b077628f4035dda7e946",23:"5d2548372608c23ae23b",24:"e0ebc0153156ac190e4c",25:"24feaa210140cd422395",26:"900caa9a75ad9804ab36",27:"107307ad950b411f1382",28:"21954c14ca90bd550b01",29:"f127c305b7d05add31ff",30:"0c8692f4f04cbc89169d",31:"9c54b8af0ad0d7fef274",32:"50139333162a6e3abb39",33:"0b4b1c0fa473ae29dfe6",34:"a51a51a9612f7cfd3ffa",35:"3febc01bc0e887e26e7d",36:"2f5b581299537d235564",37:"f7a65cabf3b141969162",38:"6484d2ec831c62486c90",39:"3a79adb7fed0462bbd80",40:"a39dfa4cd254107d52f9",41:"a16ad1ea1f2438c037aa",42:"939d6413605876c9721b",43:"790e9555b1ee2e9221d3",44:"5d153cbe32e3b25baa48",45:"1676124a8bb46f2a9a9e",46:"2b6bd996d5e1d9b81baf",47:"a64e6fe827cb9322b4e6",48:"b13c928478303af66709",49:"61bceaadc6e9d1f38f43",50:"48254be58d6882c9698e",51:"bcf05c46b40f43b66dd3",52:"074092fb2fa3a4d87b4d",53:"2b3c75c421bbb193290b"}[e]+".js";var r=setTimeout(t,12e4);function t(){n.onerror=n.onload=null,clearTimeout(r);var a=f[e];0!==a&&(a&&a[1](new Error("Loading chunk "+e+" failed.")),f[e]=void 0)}return n.onerror=n.onload=t,b.appendChild(n),c},d.m=e,d.c=c,d.d=function(e,a,c){d.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:c})},d.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(a,"a",a),a},d.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},d.p="/",d.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
...@@ -38,6 +38,17 @@ ...@@ -38,6 +38,17 @@
<el-option label="未激活" :value="0"></el-option> <el-option label="未激活" :value="0"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="沟通状态">
<el-select
v-model="searchFrom.status"
size="medium"
>
<el-option label="已激活" :value="1"></el-option>
<el-option label="假号" :value="2"></el-option>
<el-option label="没兴趣" :value="3"></el-option>
<el-option label="待激活" :value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="来源"> <el-form-item label="来源">
<el-input v-model="searchFrom.source" placeholder="名称" <el-input v-model="searchFrom.source" placeholder="名称"
></el-input> ></el-input>
...@@ -129,12 +140,12 @@ ...@@ -129,12 +140,12 @@
<el-table-column prop="status" :formatter="externalLaunchStatus" label="沟通状态" width="120"> <el-table-column prop="status" :formatter="externalLaunchStatus" label="沟通状态" width="120">
</el-table-column> </el-table-column>
<el-table-column prop="active_at" label="激活时间" width="90"> <el-table-column prop="active_at" label="领取时间" width="90">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.active_at === '0000-00-00 00:00:00'?'未激活':scope.row.active_at}} {{scope.row.active_at === '0000-00-00 00:00:00'?'未激活':scope.row.active_at}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="active_at" label="领取时间" width="90"> <el-table-column prop="active_at" label="激活时间" width="90">
</el-table-column> </el-table-column>
<el-table-column prop="desc" label="备注"> <el-table-column prop="desc" label="备注">
</el-table-column> </el-table-column>
...@@ -345,7 +356,7 @@ ...@@ -345,7 +356,7 @@
json.mobile = this.searchFrom.mobile; json.mobile = this.searchFrom.mobile;
} }
if (this.searchFrom.status) { if (this.searchFrom.status) {
json.status = this.searchFrom.status.join(','); json.status = this.searchFrom.status;
} }
if (this.searchFrom.course_type !== '-1') { if (this.searchFrom.course_type !== '-1') {
json.course_type = this.searchFrom.course_type; json.course_type = this.searchFrom.course_type;
...@@ -402,7 +413,7 @@ ...@@ -402,7 +413,7 @@
query = query + '&mobile=' + this.searchFrom.mobile query = query + '&mobile=' + this.searchFrom.mobile
} }
if(this.searchFrom.status){ if(this.searchFrom.status){
query = query + '&status=' + this.searchFrom.status.join(',') query = query + '&status=' + this.searchFrom.status
} }
if(this.searchFrom.course_type !== '-1'){ if(this.searchFrom.course_type !== '-1'){
query = query + '&course_type=' + this.searchFrom.course_type query = query + '&course_type=' + this.searchFrom.course_type
......
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
</el-col> </el-col>
</el-row> </el-row>
<el-dialog append-to-body :visible.sync="task7Show" title="外部渠道待激活列表" width="85%"> <el-dialog append-to-body :visible.sync="task7Show" title="外部渠道待激活列表" width="85%">
<el-button @click="allDesc6()" size="mini" type="success">批量添加备注</el-button> <el-button @click="allDesc7()" size="mini" type="success">批量添加备注</el-button>
<el-table <el-table
border border
size="mini" size="mini"
...@@ -161,24 +161,15 @@ ...@@ -161,24 +161,15 @@
@selection-change="handleSelectionChange123" @selection-change="handleSelectionChange123"
> >
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="receiver_mobile" label="手机号" align="center"></el-table-column> <el-table-column prop="name" label="宝宝昵称" align="center"></el-table-column>
<el-table-column prop="all_num" label="支付金额"> <el-table-column prop="telephone" label="手机号" align="center"></el-table-column>
<template slot-scope="scope">{{scope.row.money / 100}}</template>
</el-table-column>
<el-table-column prop="goods_id" label="商品编号"></el-table-column> <el-table-column prop="goods_id" label="商品编号"></el-table-column>
<el-table-column prop="invite_type" label="来源"></el-table-column> <el-table-column prop="source" label="来源"></el-table-column>
<el-table-column prop="created_at" label="导入时间"></el-table-column> <el-table-column prop="create_at" label="激活时间"></el-table-column>
<el-table-column prop="all_num" label="收货信息" width="150px">
<template slot-scope="scope">
姓名:{{scope.row.receiver_name}}
<br>
地址:{{scope.row.receiver_province}}{{scope.row.receiver_city}}{{scope.row.receiver_area}}{{scope.row.receiver_address}}
</template>
</el-table-column>
<el-table-column prop="user_status" width="260px" label="沟通状态"> <el-table-column prop="user_status" width="260px" label="沟通状态">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select <el-select
v-model="scope.row.user_status" v-model="scope.row.status"
size="medium" size="medium"
@change="updateContact2(scope.row)" @change="updateContact2(scope.row)"
> >
...@@ -194,7 +185,7 @@ ...@@ -194,7 +185,7 @@
<el-table-column width="100" prop="desc" label="操作" align="center"> <el-table-column width="100" prop="desc" label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@click="editNote(scope.row.id, scope.row.desc)" @click="editNote2(scope.row.id, scope.row.desc)"
size="mini" size="mini"
plain plain
type="primary" type="primary"
...@@ -273,40 +264,16 @@ ...@@ -273,40 +264,16 @@
@selection-change="handleSelectionChange123" @selection-change="handleSelectionChange123"
> >
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="用户" class="f-c" min-width="180" prop="user_id"> <el-table-column prop="name" label="宝宝昵称" align="center"></el-table-column>
<template slot-scope="scope"> <el-table-column prop="telephone" label="手机号" align="center"></el-table-column>
<img
:src="scope.row.avatar"
style="width: 40px;min-width:40px;height: 40px;border-radius: 50px"
>
{{scope.row.nickname}}(ID:{{scope.row.user_id}})
</template>
</el-table-column>
<el-table-column prop="receiver_mobile" label="手机号" align="center"></el-table-column>
<el-table-column prop="all_num" label="支付金额">
<template slot-scope="scope">{{scope.row.money / 100}}</template>
</el-table-column>
<el-table-column prop="goods_id" label="商品编号"></el-table-column> <el-table-column prop="goods_id" label="商品编号"></el-table-column>
<el-table-column prop="periods_id" label="期数"></el-table-column> <el-table-column prop="source" label="来源"></el-table-column>
<el-table-column prop="invite_type" label="来源"></el-table-column> <el-table-column prop="create_at" label="激活时间"></el-table-column>
<el-table-column prop="periods_title" label="期数名称"></el-table-column>
<el-table-column prop="created_at" label="导入时间"></el-table-column>
<el-table-column prop="active_at" label="激活时间"></el-table-column>
<el-table-column prop="all_num" label="收货信息" width="150px">
<template slot-scope="scope">
姓名:{{scope.row.receiver_name}}
<br>
地址:{{scope.row.receiver_province}}{{scope.row.receiver_city}}{{scope.row.receiver_area}}{{scope.row.receiver_address}}
</template>
</el-table-column>
<el-table-column prop="desc" label="备注" align="center"></el-table-column> <el-table-column prop="desc" label="备注" align="center"></el-table-column>
<el-table-column width="100" prop="desc" label="操作" align="center"> <el-table-column width="100" prop="desc" label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@click="editNote(scope.row.id, scope.row.desc)" @click="editNote2(scope.row.id, scope.row.desc)"
size="mini" size="mini"
plain plain
type="primary" type="primary"
...@@ -439,7 +406,8 @@ import { ...@@ -439,7 +406,8 @@ import {
multiApi, multiApi,
orderDescApi, orderDescApi,
updateContactApi, updateContactApi,
updateAdsStatusApi updateAdsStatusApi,
updateAdsInnerPlApi
} from "../../service/api"; } from "../../service/api";
import page from "../framework/page"; import page from "../framework/page";
import { USERSTATUS } from "../../util/wordbook"; import { USERSTATUS } from "../../util/wordbook";
...@@ -491,6 +459,7 @@ export default { ...@@ -491,6 +459,7 @@ export default {
}, },
updateContact2(row){ updateContact2(row){
console.log(row) console.log(row)
console.log(row.id)
updateAdsStatusApi({ids:row.id,status:row.status}).then(res =>{ updateAdsStatusApi({ids:row.id,status:row.status}).then(res =>{
this.$message({ this.$message({
message: '更新成功', message: '更新成功',
...@@ -514,6 +483,7 @@ export default { ...@@ -514,6 +483,7 @@ export default {
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning"
}).then(() => { }).then(() => {
console.log(value)
orderDescApi({ desc: value }, id).then(res => { orderDescApi({ desc: value }, id).then(res => {
this.$message({ this.$message({
type: "success", type: "success",
...@@ -527,6 +497,32 @@ export default { ...@@ -527,6 +497,32 @@ export default {
}); });
}); });
}, },
editNote2(id, desc) {
this.$prompt("", "编辑备注", {
confirmButtonText: "确定",
cancelButtonText: "取消",
inputType: "textarea",
inputValue: desc || ""
}).then(({ value }) => {
this.$confirm("确定保存?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
console.log(value)
updateAdsInnerPlApi({ids:id,desc:value}).then(res => {
this.$message({
type: "success",
message: "编辑备注成功"
});
this.selectedTask6 = [];
this.getTask6();
this.selectedTask7 = [];
this.getTask7();
});
});
});
},
allDesc6() { allDesc6() {
if (this.selectedTask6.length < 1) { if (this.selectedTask6.length < 1) {
this.$message({ this.$message({
...@@ -574,11 +570,12 @@ export default { ...@@ -574,11 +570,12 @@ export default {
this.selectedTask7.forEach(i => { this.selectedTask7.forEach(i => {
ids.push(i.id); ids.push(i.id);
}); });
console.log(ids)
let json = { let json = {
ids: ids.join(), ids: ids.join(','),
desc: value desc: value
}; };
multiApi(json).then(res => { updateAdsInnerPlApi(json).then(res => {
this.$message({ this.$message({
type: "success", type: "success",
message: "批量添加备注成功" message: "批量添加备注成功"
......
...@@ -1009,14 +1009,17 @@ const updateFansUrl = `/api/admin/init/fans/info`; ...@@ -1009,14 +1009,17 @@ const updateFansUrl = `/api/admin/init/fans/info`;
export const updateFansApi = function (json) { export const updateFansApi = function (json) {
return Vue.prototype.$put(`${updateFansUrl}`,json) return Vue.prototype.$put(`${updateFansUrl}`,json)
}; };
// 更新外部订单沟通情况
const updateContactUrl = `/api/admin/other/order/user/status`; const updateContactUrl = `/api/admin/other/order/user/status`;
export const updateContactApi = function (json) { export const updateContactApi = function (json) {
return Vue.prototype.$put(`${updateContactUrl}`,json) return Vue.prototype.$put(`${updateContactUrl}`,json)
}; };
// 外部渠道批量指派订单老师
const adsTeacherUrl = `/api/admin/ads/teacher/`; const adsTeacherUrl = `/api/admin/ads/teacher/`;
export const adsTeacherApi = function (id,json) { export const adsTeacherApi = function (id,json) {
return Vue.prototype.$put(`${adsTeacherUrl}${id}`,json) return Vue.prototype.$put(`${adsTeacherUrl}${id}`,json)
}; };
// 更新外部渠道沟通状态
const updateAdsStatusUrl = `/api/admin/ads/user/status`; const updateAdsStatusUrl = `/api/admin/ads/user/status`;
export const updateAdsStatusApi = function (json) { export const updateAdsStatusApi = function (json) {
return Vue.prototype.$put(`${updateAdsStatusUrl}`,json) return Vue.prototype.$put(`${updateAdsStatusUrl}`,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