Commit d1bc528a authored by 张俊's avatar 张俊

Merge branch 'dev' of https://cloud.wodcloud.com/git/apaas/apaas-v3-ui into dev

parents fb88704a a1daefb5
......@@ -609,6 +609,17 @@ width: 620px!important;
color: #dde4ff;
margin: 0 20px;
}
.apass_table .border-active td {
padding: 10px 0;
border-top: 2px solid #515fe7 !important;
border-bottom: 2px solid #515fe7 !important;
}
.apass_table .border-active td:first-child {
border-left: 2px solid #515fe7 !important;
}
.apass_table .border-active td:last-child {
border-right: 2px solid #515fe7 !important;
}
.apass_checkbox .el-checkbox__input.is-checked .el-checkbox__inner,
.apass_checkbox .el-checkbox__input.is-indeterminate .el-checkbox__inner {
......@@ -666,27 +677,27 @@ width: 620px!important;
.apaas_detail_container .detail_action .el-button + .el-button {
margin-left: 30px;
}
.apaas_detail_container .detail_form {
.apaas_detail_form {
max-width: 970px;
}
.apaas_detail_container .detail_form .el-input__inner,
.apaas_detail_container .detail_form .el-textarea__inner {
.apaas_detail_form .el-input__inner,
.apaas_detail_form .el-textarea__inner {
width: 100%;
background-color: #f7f8f9;
}
.apaas_detail_container .detail_form .el-select {
.apaas_detail_form .el-select {
width: 100%;
}
.apaas_detail_container .detail_form.el-form--label-top .el-form-item__label {
.apaas_detail_form.el-form--label-top .el-form-item__label {
padding: 0 0 15px;
font-size: 14px;
line-height: 1;
color: #58617a;
}
.apaas_detail_container .detail_form .el-form-item {
.apaas_detail_form .el-form-item {
margin-bottom: 30px;
}
.apaas_detail_container .detail_form .textarea_count {
.apaas_detail_form .textarea_count {
font-size: 14px;
line-height: 1;
color: #a9aec0;
......
<template>
<div class="apass_table">
<el-table :data="data" @sort-change="sortChange" @row-click="rowClick">
<el-table
:data="data"
@sort-change="sortChange"
@row-click="rowClick"
:row-class-name="rowClassName"
>
<el-table-column
v-if="paddingLeft > 10"
:width="paddingLeft - 10"
......@@ -214,6 +219,10 @@ export default {
type: Number,
default: null,
},
rowClassName: {
type: Function,
default: null,
},
},
data() {
return {
......
<template>
<div>
xxxx
<div class="selected_user">
<p class="selected_title">目标用户:</p>
<div class="selected_list">
<span class="selected_item" v-for="item in selectedList" :key="item.id">
<span v-text="item.label"></span>
<i class="el-icon-close" @click="deleteItem(item)"></i>
</span>
</div>
<div class="user_list apass_checkbox">
<el-input
v-model="search"
placeholder="请输入内容"
@input="searchAction"
></el-input>
<div class="user_tree apaas_scroll">
<!-- check-strictly -->
<el-tree
ref="userTree"
:data="targetUserList"
:default-expand-all="true"
:props="defaultProps"
show-checkbox
node-key="id"
@check="selectedAction"
></el-tree>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
search: "",
timer: null,
targetUserList: [],
defaultProps: {
children: "children",
label: "label",
},
selectedList: [],
};
},
created() {
this.getTargetUserList();
},
methods: {
getTargetUserList() {
this.$http
.get("/apaas/backmgt/center/targetUserList", {
params: {
search: this.search,
},
})
.then(({ data }) => {
if (data.success == 1) {
this.targetUserList = [
{
id: "apaas-all",
label: "全选",
level: 0, // 全选
children: (data.data || []).map((item) => ({
id: item.department_id,
label: item.department_name,
level: 1, // 组织
children: (item.userList || []).map((v) => ({
id: v.user_id,
label: v.user_name,
level: 2, // 用户
parent_id: item.department_id,
})),
})),
},
];
if (this.selectedList.length > 0) {
this.$nextTick(() => {
this.selectedList.forEach((node) => {
this.setChecked(node, true, true);
});
});
}
} else {
this.$message({
message: data.errMsg || "获取用户列表失败",
type: "warning",
});
}
})
.catch((error) => {
console.log(error);
this.$message({
message: "获取用户列表失败",
type: "warning",
});
});
},
searchAction() {
if (this.timer) {
clearTimeout(this.timer);
}
this.timer = setTimeout(this.getTargetUserList, 200);
},
setChecked(item, checked, deep) {
this.$refs.userTree.setChecked(item, checked, deep);
},
selectedAction(dataObj, checkedInfo) {
let checkedNodes = checkedInfo.checkedNodes.filter((node) => {
return node.id !== "apaas-all"; // 把自定义的全选节点移除
});
let selectedList = [];
checkedNodes.forEach((node) => {
if (node.level === 1) {
selectedList.push(node);
} else if (node.level === 2) {
if (selectedList.find((v) => v.id === node.parent_id)) {
// 父节点已被选中
} else {
selectedList.push(node);
}
}
});
this.selectedList = selectedList;
this.upSelected();
},
deleteItem(item) {
this.setChecked(item, false, true);
this.selectedList = this.selectedList.filter((node) => {
return node.id !== item.id;
});
this.upSelected();
},
upSelected() {
// console.log(this.selectedList.map((node) => node.label));
let users = [];
this.selectedList.forEach((node) => {
if (node.level === 1) {
users.push(...node.children);
} else if (node.level === 2) {
users.push(node);
}
});
// console.log(users);
this.$emit("change", users);
},
},
};
</script>
<style scoped>
.selected_user {
max-width: 1024px;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
}
.selected_title {
flex-shrink: 0;
padding: 0 15px;
font-size: 14px;
line-height: 30px;
color: #58617a;
margin-top: 10px;
}
.selected_list {
flex-shrink: 0;
min-height: 44px;
padding: 4px;
border: 1px solid #e3e5ef;
box-sizing: border-box;
border-radius: 7px;
overflow: hidden;
margin-top: 10px;
}
.selected_list .selected_item {
display: inline-block;
vertical-align: middle;
background-color: #e6ebfe;
border-radius: 3px;
overflow: hidden;
padding: 0 5px;
margin: 5px;
font-size: 12px;
line-height: 24px;
color: #0f2683;
}
.selected_list .selected_item > i {
cursor: pointer;
font-weight: bold;
}
.user_list {
flex-grow: 1;
background-color: #f8f9fd;
padding: 10px;
box-sizing: border-box;
border-radius: 7px;
margin-top: 10px;
position: relative;
}
.user_list .user_tree {
position: absolute;
top: 60px;
right: 10px;
bottom: 10px;
left: 10px;
overflow-x: hidden;
overflow-y: auto;
}
.user_tree .el-tree {
background-color: transparent;
}
</style>
<style>
.selected_user .el-tree-node__content {
height: 32px;
}
</style>
<template>
<div class="apaas_detail_container">
<div class="apaas_detail_container banner_detail_container">
<div class="apass_breadcrumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/message' }">
{{ $t("lang.message") }}
</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/message/banner' }">
{{ 'banner管理' }}
{{ "banner管理" }}
</el-breadcrumb-item>
<el-breadcrumb-item>
{{ pageName }}
......@@ -17,7 +17,7 @@
<div class="main_contaner banner_contaner">
<el-form
ref="detail_form"
class="detail_form"
class="apaas_detail_form"
label-position="top"
:model="detail"
:rules="detail_rules"
......@@ -67,7 +67,8 @@
v-model="detail.up_time"
type="datetime"
:disabled="disabled"
placeholder="选择日期时间">
placeholder="选择日期时间"
>
</el-date-picker>
</el-form-item>
......@@ -76,7 +77,8 @@
v-model="detail.down_time"
type="datetime"
:disabled="disabled"
placeholder="选择日期时间">
placeholder="选择日期时间"
>
</el-date-picker>
</el-form-item>
......@@ -93,7 +95,6 @@
directory="manage"
></upload-file>
</el-form-item>
</el-form>
<div class="apaas_button detail_action">
......@@ -108,7 +109,7 @@
type="primary"
@click="primaryAction"
:loading="submitLoading"
v-if="pageType!==2"
v-if="pageType !== 2"
>
确定
</el-button>
......@@ -118,34 +119,34 @@
</template>
<script>
 var user_name_pass = (rule, value, callback) => {
      var reg = /^[a-zA-Z0-9|\-|_|\.]+$/;
      setTimeout(() => {
        if (reg.test(value)) {
          callback();
        } else {
          callback(new Error("只支持字母、数字、-、_、."));
        }
      }, 100);
    };
var user_name_pass = (rule, value, callback) => {
var reg = /^[a-zA-Z0-9|\-|_|\.]+$/;
setTimeout(() => {
if (reg.test(value)) {
callback();
} else {
callback(new Error("只支持字母、数字、-、_、."));
}
}, 100);
};
import helper from "@/services/helper.js";
import uploadFile from "@/components/general/upload_file";
export default {
components:{
uploadFile
},
components: {
uploadFile,
},
data: () => ({
pageType: 0, // 0:新增,1:编辑,2:详情
detail: {
name: "",
state: "",
url: "",
rank:"",
up_time:"",
down_time:"",
fileList:'',
size:'',
id:''
rank: "",
up_time: "",
down_time: "",
fileList: "",
size: "",
id: "",
},
imgList: [],
detail_rules: {
......@@ -197,9 +198,7 @@ export default {
trigger: "change",
},
],
url: [
],
url: [],
},
types: [
{
......@@ -209,7 +208,7 @@ export default {
{
name: "已下架",
value: 0,
}
},
],
submitLoading: false,
}),
......@@ -220,17 +219,17 @@ export default {
disabled() {
return this.pageType === 2;
},
disabled1(){
disabled1() {
return this.pageType !== 1;
}
},
},
created() {
if (this.$route.name === "banner_edit") {
this.pageType = 1;
} else if (this.$route.name === "banner_detail") {
this.pageType = 2;
}else{
this.detail.state = 1
} else {
this.detail.state = 1;
}
if (this.pageType !== 0) {
......@@ -245,22 +244,25 @@ export default {
},
getDetail() {
this.$http
.get("/apaas/service/v3/recommend/manage/banners/info/"+this.$route.query.id)
.get(
"/apaas/service/v3/recommend/manage/banners/info/" +
this.$route.query.id
)
.then(({ data }) => {
if (data.success == 1) {
var detail = data.data
var detail = data.data;
this.detail = {
name: detail.name,
state: detail.state,
url: detail.url,
rank:detail.ordid,
up_time:detail.up_time,
down_time:detail.down_time,
fileList:detail.image_url,
size:detail.image_size,
id:detail.serial_num,
}
this.imgList = [detail.image_url]
rank: detail.ordid,
up_time: detail.up_time,
down_time: detail.down_time,
fileList: detail.image_url,
size: detail.image_size,
id: detail.serial_num,
};
this.imgList = [detail.image_url];
} else {
this.$message({
message: data.errMsg || "获取详情失败",
......@@ -280,14 +282,14 @@ export default {
addTemplate() {
this.$http
.post("/apaas/service/v3/recommend/manage/banners/add", {
"name": this.detail.name,
"url": this.detail.url,
"image_size": this.detail.size,
"image_url": this.detail.fileList,
"up_time": this.detail.up_time,
"down_time": this.detail.down_time,
"state": this.detail.state,
"ordid": parseInt(this.detail.rank)
name: this.detail.name,
url: this.detail.url,
image_size: this.detail.size,
image_url: this.detail.fileList,
up_time: this.detail.up_time,
down_time: this.detail.down_time,
state: this.detail.state,
ordid: parseInt(this.detail.rank),
})
.then(({ data }) => {
if (data.success == 1) {
......@@ -322,15 +324,15 @@ export default {
editTemplate() {
this.$http
.post("/apaas/service/v3/recommend/manage/banners/update", {
"serial_num":this.detail.id,
"name": this.detail.name,
"url": this.detail.url,
"image_size": this.detail.size,
"image_url": this.detail.fileList,
"up_time": this.detail.up_time,
"down_time": this.detail.down_time,
"state": this.detail.state,
"ordid": parseInt(this.detail.rank)
serial_num: this.detail.id,
name: this.detail.name,
url: this.detail.url,
image_size: this.detail.size,
image_url: this.detail.fileList,
up_time: this.detail.up_time,
down_time: this.detail.down_time,
state: this.detail.state,
ordid: parseInt(this.detail.rank),
})
.then(({ data }) => {
if (data.success == 1) {
......@@ -385,16 +387,16 @@ export default {
</script>
<style>
.apaas_detail_container .banner_contaner .el-input__inner{
width: 970px;
.banner_detail_container .banner_contaner .el-input__inner {
width: 970px;
}
.apaas_detail_container .el-upload--picture-card{
.banner_detail_container .el-upload--picture-card {
width: 526px;
height: 174px;
height: 174px;
line-height: 174px;
}
.apaas_detail_container .el-upload-list--picture-card .el-upload-list__item{
.banner_detail_container .el-upload-list--picture-card .el-upload-list__item {
width: 526px;
height: 174px;
height: 174px;
}
</style>
......@@ -193,31 +193,31 @@ export default {
{
label: "编辑",
callback: this.editAction,
disabledRule(item) {
              return item.state == 1;
            }
disabledRule(item) {
return item.state == 1;
},
},
{
label: "上架",
callback: this.upAction,
disabledRule(item) {
              return item.state == 1 || item.state == 3;
            }
disabledRule(item) {
return item.state == 1 || item.state == 3;
},
},
{
label: "下架",
callback: this.downAction,
disabledRule(item) {
              return item.state == 2 || item.state == 3;
            }
disabledRule(item) {
return item.state == 2 || item.state == 3;
},
},
{
label: "删除",
class: "warn",
callback: this.deleteAction,
disabledRule(item) {
              return item.state == 1;
            }
disabledRule(item) {
return item.state == 1;
},
},
],
},
......@@ -241,10 +241,10 @@ export default {
page: filter.page,
size: filter.size,
state: filter.state,
up_time_s:fullFilter.up_time?fullFilter.up_time[0]:'',
up_time_e:fullFilter.up_time?fullFilter.up_time[1]:'',
down_time_s:fullFilter.down_time?fullFilter.down_time[0]:'',
down_time_e:fullFilter.down_time?fullFilter.down_time[1]:''
up_time_s: fullFilter.up_time ? fullFilter.up_time[0] : "",
up_time_e: fullFilter.up_time ? fullFilter.up_time[1] : "",
down_time_s: fullFilter.down_time ? fullFilter.down_time[0] : "",
down_time_e: fullFilter.down_time ? fullFilter.down_time[1] : "",
},
})
.then(({ data }) => {
......@@ -260,6 +260,11 @@ export default {
})
.catch((error) => {
console.log(error);
this.$message({
message: "获取列表失败",
type: "warning",
});
});
},
topFilterAction() {
......@@ -278,53 +283,72 @@ export default {
showDialog() {
this.$refs.dialog.show();
},
detailAction(item){
this.$router.push('/message/banner_detail?id='+item.serial_num)
detailAction(item) {
this.$router.push("/message/banner_detail?id=" + item.serial_num);
},
addNew() {
console.log("新建模板");
this.$router.push('/message/banner_add')
this.$router.push("/message/banner_add");
},
editAction(item) {
console.log(item);
this.$router.push('/message/banner_edit?id='+item.serial_num)
this.$router.push("/message/banner_edit?id=" + item.serial_num);
},
upAction(item) {
this.$http
.post("/apaas/service/v3/recommend/manage/banners/up",{
serial_num:item.serial_num
.post("/apaas/service/v3/recommend/manage/banners/up", {
serial_num: item.serial_num,
})
.then(({ data }) => {
if (data.success == 1) {
this.$message.success('上架成功')
this.initList(this.tempFilter)
this.$message.success("上架成功");
this.initList(this.tempFilter);
} else {
this.$message.warning("上架失败");
}
})
.catch((error) => {
console.log(error);
this.$message.warning("上架失败");
});
},
downAction(item) {
this.$http
.post("/apaas/service/v3/recommend/manage/banners/down",{
serial_num:item.serial_num
.post("/apaas/service/v3/recommend/manage/banners/down", {
serial_num: item.serial_num,
})
.then(({ data }) => {
if (data.success == 1) {
this.$message.success('下架成功')
this.initList(this.tempFilter)
this.$message.warning("下架成功");
this.initList(this.tempFilter);
} else {
this.$message.warning("下架失败");
}
})
.catch((error) => {
console.log(error);
this.$message.warning("下架失败");
});
},
deleteAction(item) {
// console.log(`删除${item.name}`);
this.$http
.post("/apaas/service/v3/recommend/manage/banners/del",[item.serial_num])
.post("/apaas/service/v3/recommend/manage/banners/del", [
item.serial_num,
])
.then(({ data }) => {
if (data.success == 1) {
this.$message.success('删除成功')
this.initList(this.tempFilter)
}else{
this.$message.error('删除失败')
this.$message.success("删除成功");
this.initList(this.tempFilter);
} else {
this.$message.warning("删除失败");
}
})
.catch((error) => {
console.log(error);
this.$message.warning("删除失败");
});
},
},
};
......
......@@ -131,13 +131,13 @@ export default {
created() {},
methods: {
selectService(values) {
this.serviceIds = values.map((item) => item.id).join(",");
this.serviceIds = values.map((item) => item.id).join(",") || "";
},
selectTemplate(value) {
this.templateId = (value && value.id) || "";
},
selectTargetUser(values) {
this.targetUserIds = values.map((item) => item.user_id).join(",");;
this.targetUserIds = values.map((item) => item.id).join(",") || "";
},
backToList() {
this.$router.push("/message/directed_push");
......@@ -176,7 +176,34 @@ export default {
return;
}
this.done = true;
this.$http
.post("/apaas/service/v3/push/directmsg/create", {
service_id: this.serviceIds,
tpl_id: this.templateId,
receive_user: this.targetUserIds,
})
.then(({ data }) => {
if (data.success == 1) {
this.$message({
message: "创建成功",
type: "success",
});
this.done = true;
} else {
this.$message({
message: data.errMsg || "创建失败",
type: "warning",
});
}
})
.catch((error) => {
console.log(error);
this.$message({
message: "创建失败",
type: "warning",
});
});
},
},
};
......
......@@ -17,7 +17,7 @@
<div class="main_contaner">
<el-form
ref="detail_form"
class="detail_form"
class="apaas_detail_form"
label-position="top"
:model="detail"
:rules="detail_rules"
......@@ -55,7 +55,6 @@
<p
class="textarea_count"
v-text="`还可以输入${500 - detail.content.length}字`"
v-if="!disabled"
></p>
</el-form-item>
</el-form>
......
......@@ -422,17 +422,17 @@ export default new Router({
{
path: "/message/banner_add", // benner新增
name: "banner_add",
component: () => import("@/pages/message-management/banner/banner_add"),
component: () => import("@/pages/message-management/banner/banner-detail"),
},
{
path: "/message/banner_edit", // benner编辑
name: "banner_edit",
component: () => import("@/pages/message-management/banner/banner_add"),
component: () => import("@/pages/message-management/banner/banner-detail"),
},
{
path: "/message/banner_detail", // benner详情
name: "banner_detail",
component: () => import("@/pages/message-management/banner/banner_add"),
component: () => import("@/pages/message-management/banner/banner-detail"),
},
{
path: "/message/message_template", // 消息模板列表
......
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