diff --git a/project/sass/apps/Announce/AppAnnounce/components/Add.vue b/project/sass/apps/Announce/AppAnnounce/components/Add.vue
index e5b13b0f..4d8901f2 100644
--- a/project/sass/apps/Announce/AppAnnounce/components/Add.vue
+++ b/project/sass/apps/Announce/AppAnnounce/components/Add.vue
@@ -11,13 +11,13 @@
取消
- 提交
+ 通知成员发送
+ 定时发送
@@ -110,31 +200,28 @@
},
data () {
- const validatorPhone = function (rule, value, callback) {
- if (value === '') {
- callback(new Error('请输入手机号'))
- } else if (!/^1\d{10}$/.test(value)) {
- callback(new Error('手机号格式错误'))
- } else {
- callback()
- }
- }
return {
info: {},
department: [],
- validatorPhone: validatorPhone,
+ fileList: [],
+ isShowAddLink: false,
+ linkForm: {
+ linkPicUrl: [],
+ linkDesc: '',
+ linkTitle: '',
+ linkUrl: ''
+ },
form: {
- position: '',
+ content: '',
+ choiceTime: '',
+ contents: [],
+ enableExamine: '0',
+ examines: [],
+ wxGroups: [],
+ sendScope: '0',
+ sendType: 0,
name: '',
- email: '',
- telephone: '',
- gender: '',
- mobile: '',
- departmentName: '',
- departmentIds: [],
- tagIds: [],
- id: '',
- status: false
+ taskTitle: ''
},
id: '',
tagsList: []
@@ -173,6 +260,91 @@
})
},
+ onLinkConfirm () {
+ this.$refs.linkForm.validate((valid) => {
+ if (valid) {
+ this.fileList.push({
+ ...this.linkForm,
+ linkPicUrl: this.linkPicUrl[0].url,
+ msgType: '4'
+ })
+
+ this.isShowAddLink = false
+ }
+ })
+ },
+
+ onClose () {
+ this.linkForm.linkPicUrl = []
+ this.linkForm.linkDesc = ''
+ this.linkForm.linkTitle = ''
+ this.linkForm.linkUrl = ''
+ },
+
+ removeFile (index) {
+ this.fileList.splice(index, 1)
+ },
+
+ mapIcon (type) {
+ return {
+ 1: 'https://cdn.cunwuyun.cn/dvcp/announce/img.png',
+ 2: 'https://cdn.cunwuyun.cn/dvcp/announce/video.png',
+ 3: 'https://cdn.cunwuyun.cn/dvcp/announce/folder.png',
+ 4: 'https://cdn.cunwuyun.cn/dvcp/announce/site.png',
+ 5: 'https://cdn.cunwuyun.cn/dvcp/announce/miniapp.png'
+ }[type]
+ },
+
+ onBeforeUpload(event) {
+ return this.onOverSize(event)
+ },
+
+ getExtension(name) {
+ return name.substring(name.lastIndexOf('.'))
+ },
+
+ handleChange (e, size, accept) {
+ const isLt10M = e.size / 1024 / 1024 < size
+ const suffixName = this.getExtension(e.name)
+ const suffixNameList = accept.split(',')
+
+ if (suffixNameList.indexOf(`${suffixName.toLowerCase()}`) === -1) {
+ this.$message.error(`不支持该格式`)
+ return false
+ }
+
+ if (!isLt10M) {
+ this.$message.error(`大小不超过${10}MB!`)
+ return false
+ }
+
+ return true
+ },
+
+ submitUpload (file, type) {
+ const fileType = {
+ '1': 'image',
+ '2': 'video',
+ '3': 'file'
+ }[type]
+ let formData = new FormData()
+ formData.append('file', file.file)
+ formData.append('type', fileType)
+ this.instance.post(`/app/wxcp/upload/uploadFile`, formData, {
+ withCredentials: false
+ }).then(res => {
+ if (res.code == 0) {
+ this.fileList.push({
+ ...res.data.file,
+ media: res.data.media,
+ msgType: type
+ })
+
+ this.$message.success('上传成功')
+ }
+ })
+ },
+
onChange (e) {
if (e.length) {
this.form.departmentIds = e.map(v => v.id)
@@ -191,10 +363,6 @@
})
},
- onClose () {
- this.form.explain = ''
- },
-
confirm () {
this.$refs.form.validate((valid) => {
if (valid) {
@@ -304,6 +472,35 @@
font-size: 14px;
}
}
+
+ .fileList {
+ margin-bottom: 12px;
+
+ .add-item {
+ justify-content: space-between;
+ margin-bottom: 8px;
+
+ .left {
+ display: flex;
+ align-items: center;
+ }
+
+ i {
+ font-size: 14px;
+ cursor: pointer;
+ font-style: normal;
+ color: red;
+
+ &:hover {
+ opacity: 0.6;
+ }
+ }
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
}
.AppAnnounceDetail-container {
@@ -321,10 +518,26 @@
.right {
position: sticky;
top: 0;
- width: 400px;
- height: 688px;
- background: url(https://cdn.cunwuyun.cn/dvcp/announce/phone.png);
- background-size: 400px 100%;
+ width: 338px;
+ height: 675px;
+
+ .phone {
+ position: absolute;
+ left: 14px;
+ top: 14px;
+ z-index: 1;
+ width: 310px;
+ height: 647px;
+ }
+
+ .phone-wrapper {
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 2;
+ width: 338px;
+ height: 675px;
+ }
}
}
@@ -340,7 +553,7 @@
}
i {
- color: #c0c9db;
+ color: #8899bb;
}
em {
diff --git a/project/sass/apps/Announce/AppAnnounce/components/List.vue b/project/sass/apps/Announce/AppAnnounce/components/List.vue
index a7b7d69f..ddf9f499 100644
--- a/project/sass/apps/Announce/AppAnnounce/components/List.vue
+++ b/project/sass/apps/Announce/AppAnnounce/components/List.vue
@@ -12,32 +12,34 @@
创建宣发
+ :selectList="dict.getDict('mstStatus')">
@@ -86,20 +88,21 @@ export default {
search: {
current: 1,
size: 10,
- name: '',
- startDate: '',
- endDate: ''
+ status: '',
+ taskTitle: '',
+ startTime: '',
+ endTime: ''
},
tableData: [],
loading: false,
total: 0,
colConfigs: [
- { prop: 'position', label: '任务名称' },
- { prop: 'mobile', label: '群发类型' },
- { prop: 'position', label: '创建人' },
- { prop: 'mobile', label: '群发时间' },
- { prop: 'position', label: '状态' },
- { prop: 'mobile', label: '任务完成率' }
+ { prop: 'taskTitle', label: '任务名称' },
+ { prop: 'sendType', label: '群发类型', formart: v => v === '0' ? '立即发送' : '定时发送', align: 'center' },
+ { prop: 'createUserId', label: '创建人', openType: 'userName', align: 'center' },
+ { prop: 'createTime', label: '群发时间', align: 'center' },
+ { prop: 'status', label: '状态', formart: v => this.dict.getLabel('mstStatus', v), align: 'center' },
+ { prop: 'completionRate', label: '任务完成率', align: 'center' }
]
}
},
@@ -108,29 +111,18 @@ export default {
...mapState(['user'])
},
- created() {
- this.getList()
+ created () {
+ this.dict.load('mstStatus', 'mstSendType').then(() => {
+ this.getList()
+ })
},
methods: {
- removeDepart(id, parentid) {
- this.$confirm('确定删除该数据?').then(() => {
- this.instance.post(`/app/wxcp/wxdepartment/delete?id=${id}`).then(res => {
- if (res.code == 0) {
- this.defaultChecked = [parentid]
- this.$message.success('删除成功!')
- this.getTree()
- }
- })
- })
- },
-
getList() {
this.loading = true
- this.instance.post(`/app/wxcp/wxuser/list`, null, {
+ this.instance.post(`/app/appmasssendingtask/list`, null, {
params: {
...this.search,
- departmentId: this.tabIndex === 0 ? this.search.departmentId : ''
}
}).then(res => {
if (res.code == 0) {
@@ -151,7 +143,7 @@ export default {
remove(id) {
this.$confirm('确定删除该数据?').then(() => {
- this.instance.post(`/app/wxcp/wxuser/delete?id=${id}`).then(res => {
+ this.instance.post(`/app/appmasssendingtask/delete?ids=${id}`).then(res => {
if (res.code == 0) {
this.$message.success('删除成功!')
this.getList()
diff --git a/project/sass/apps/Announce/AppAnnounceStatistics/AppAnnounceStatistics.vue b/project/sass/apps/Announce/AppAnnounceStatistics/AppAnnounceStatistics.vue
index 7a2954fb..e821c587 100644
--- a/project/sass/apps/Announce/AppAnnounceStatistics/AppAnnounceStatistics.vue
+++ b/project/sass/apps/Announce/AppAnnounceStatistics/AppAnnounceStatistics.vue
@@ -100,6 +100,13 @@
+
+
+
+
+ 确认
+
@@ -132,7 +139,8 @@
dateTypeList: ['近7天', '近30天', '近1年', '自定义'],
departData: {},
departBarChart: null,
-
+ dialogDate: false,
+ timeList: '',
type: '',
}
@@ -188,6 +196,22 @@
this.dict.load("mstSendType")
},
methods: {
+ selectDete() {
+ console.log(this.timeList)
+ if(!this.timeList || !this.timeList.length) {
+ return this.$message.error('请选择自定义时间');
+ }
+
+ if(this.effectType == 3) { //宣发效果
+ this.getEffect()
+ }
+
+ if(this.departType == 3) { //宣发明细
+ this.getDepart()
+ }
+
+ this.dialogDate = false
+ },
searchMonthChange() {
this.calendarDate = this.searchMonth + '-1'
},
@@ -204,10 +228,16 @@
},
changeEffectType(type) {
this.effectType = type
- this.getEffect()
+ if(type == 3) {
+ this.dialogDate = true
+ this.timeList = []
+ }else {
+ this.getEffect()
+ }
},
getEffect() {
- this.instance.post(`/app/appmasssendingtask/statisticsEffect?type=${this.effectType}`).then(res => {
+ var startTime = this.timeList[0] || '' , endTime = this.timeList[1] || ''
+ this.instance.post(`/app/appmasssendingtask/statisticsEffect?type=${this.effectType}&startTime=${startTime}&endTime=${endTime}`).then(res => {
if (res.code == 0) {
this.effectData = res.data
var xData = [], createData = [], executeData = [], receiveData = []
@@ -259,10 +289,16 @@
},
changeDepartType(type) {
this.departType = type
- this.getDepart()
+ if(type == 3) {
+ this.dialogDate = true
+ this.timeList = []
+ }else {
+ this.getDepart()
+ }
},
- getDepart() { // ${this.departType}
- this.instance.post(`/app/appmasssendingtask/statisticsDepart?type=1`).then(res => {
+ getDepart() {
+ var startTime = this.timeList[0] || '' , endTime = this.timeList[1] || ''
+ this.instance.post(`/app/appmasssendingtask/statisticsDepart?type=${this.departType}&startTime=${startTime}&endTime=${endTime}`).then(res => {
if (res.code == 0) {
// this.dateList = res.data
// this.getTaskList(this.chooseDay)
@@ -291,16 +327,16 @@
bottom: 90,
containLabel: true
},
- toolbox: {
- feature: {
- dataZoom: {
- yAxisIndex: false
- },
- saveAsImage: {
- pixelRatio: 2
- }
- }
- },
+ // toolbox: {
+ // feature: {
+ // dataZoom: {
+ // yAxisIndex: false
+ // },
+ // saveAsImage: {
+ // pixelRatio: 2
+ // }
+ // }
+ // },
tooltip: {
trigger: 'axis',
axisPointer: {
@@ -501,6 +537,7 @@
border: 1px solid #D0D4DC;
margin-right: 8px;
box-sizing: border-box;
+ cursor: pointer;
}
.active{
border: 1px solid #26f;