diff --git a/src/api/other/index.js b/src/api/other/index.js index eb9c4ae..782952a 100644 --- a/src/api/other/index.js +++ b/src/api/other/index.js @@ -1,5 +1,20 @@ import request from "@/utils/request"; +function customParamsSerializer(params) { + let result = ''; + for (let key in params) { + if (params.hasOwnProperty(key)) { + if (Array.isArray(params[key])) { + params[key].forEach((item,index) => { + result += `${key}[${index}]=${item}&`; + }); + } else { + result += `${key}=${params[key]}&`; + } + } + } + return result.slice(0, -1); +} export function getOaToken (isLoading=false) { return request({ url: "/api/admin/oa/get-oa-token", @@ -43,3 +58,13 @@ export function checkTransfer (params) { isLoading: false }) } + +export function sendSms (params) { + return request({ + url: "/api/admin/sned_sms", + method: "get", + params, + paramsSerializer: customParamsSerializer, + isLoading: false + }) +} diff --git a/src/views/baseData/component/addGroup.vue b/src/views/baseData/component/addGroup.vue new file mode 100644 index 0000000..3256618 --- /dev/null +++ b/src/views/baseData/component/addGroup.vue @@ -0,0 +1,652 @@ + + + diff --git a/src/views/baseData/groups.vue b/src/views/baseData/groups.vue new file mode 100644 index 0000000..56196e3 --- /dev/null +++ b/src/views/baseData/groups.vue @@ -0,0 +1,722 @@ + + + + + diff --git a/src/views/bigScreen1/component/callback.vue b/src/views/bigScreen1/component/callback.vue index 48f1f2d..9e8f92b 100644 --- a/src/views/bigScreen1/component/callback.vue +++ b/src/views/bigScreen1/component/callback.vue @@ -3,6 +3,7 @@ import { save, show, index, destroy } from "@/api/system/baseForm"; import { CreateDialog } from "@/utils/createDialog" import { deepCopy } from "@/utils"; import { resolveFormInfo } from '@/utils/createTable'; +import { sendSms } from "@/api/other" export default { props: { tableName: String, @@ -10,6 +11,35 @@ export default { render(h) { let dialog = new CreateDialog(this,[ { + key: "telephone_group", + label: "通知号码组", + render: row => { + return ( + { + this.smsForm.mobile = e.id_telephone_group_relations_group_id_relation?.map(i => i.name)} + }}> + { + this.telephoneGroups.map(i => + ( + + {i.name} + + { + i.id_telephone_group_relations_group_id_relation?.map((j, ji) => (j.name + ( ji === i.id_telephone_group_relations_group_id_relation.length - 1 ? '' : ',' ))) + } + + + ) + ) + } + + ) + } } ],{ width: "650px" @@ -29,6 +59,13 @@ export default { originalForm: {}, rules: {}, file: {}, + + telephoneGroups: [], + groupId: '', + smsForm: { + mobile: [], + content: "" + } }; }, methods: { @@ -99,6 +136,7 @@ export default { }, submit() { + this.smsForm.content = this.form.content if (this.type === "add") { this.form.transfer_id = this.transfer_id; if (this.form.hasOwnProperty("id")) { @@ -121,8 +159,20 @@ export default { }); this.$emit("refresh"); this.hidden(); + + if (this.smsForm.mobile && this.smsForm.mobile.length > 0 && this.smsForm.content) { + sendSms(this.smsForm) + } }) }, + + async getTelephoneGroups () { + this.telephoneGroups = (await index({ + table_name: "groups", + page: 1, + page_size: 999 + })).data + } }, computed: { title () { @@ -190,6 +240,7 @@ export default { }, }, created() { + this.getTelephoneGroups() resolveFormInfo(5,'form').then(res => this.formInfo = res) } }; diff --git a/src/views/bigScreen1/component/doing.vue b/src/views/bigScreen1/component/doing.vue index 8499a27..48a166a 100644 --- a/src/views/bigScreen1/component/doing.vue +++ b/src/views/bigScreen1/component/doing.vue @@ -68,7 +68,7 @@ - + @@ -513,6 +513,21 @@ $list-height: calc(#{$container-height} - 5.33rem); color: #333; border-color: #a4ddf0; } + &__callback { + font-size: 2.2rem; + margin-left: 6px; + animation: flash 5s infinite linear; + cursor: pointer; + + @keyframes flash { + 0%,4%,100% { + opacity: 1; + } + 2% { + opacity: 0; + } + } + } } } diff --git a/src/views/bigScreen1/component/toDo.vue b/src/views/bigScreen1/component/toDo.vue index cfb6e62..3add933 100644 --- a/src/views/bigScreen1/component/toDo.vue +++ b/src/views/bigScreen1/component/toDo.vue @@ -68,7 +68,7 @@ - + diff --git a/src/views/component/table.vue b/src/views/component/table.vue index 323ed15..161d570 100644 --- a/src/views/component/table.vue +++ b/src/views/component/table.vue @@ -396,6 +396,7 @@ export default { }; }, methods: { + setTransferStatus (status,row) { let copyRow = deepCopy(row); copyRow.status = status; diff --git a/src/views/order/component/createDispatch.vue b/src/views/order/component/createDispatch.vue index 7681d36..59db52c 100644 --- a/src/views/order/component/createDispatch.vue +++ b/src/views/order/component/createDispatch.vue @@ -100,6 +100,7 @@ >模板选择 + @@ -244,6 +245,7 @@ export default { area: [], type: [], leibie: [], + name: "" }, weather: [], copyOriginalData: [], @@ -1144,9 +1146,10 @@ export default { }, select: { handler: function (val) { - if (val.area.length > 0 || val.type.length > 0) { + if (val.area.length > 0 || val.type.length > 0 || val.name) { let list1 = []; let list2 = []; + let list3 = []; if (val.area.length > 0) { list1 = this.equipments().filter((i) => val.area.find((j) => j === i.area) @@ -1157,8 +1160,13 @@ export default { val.type.find((j) => j === i.type) ); } + if (val.name) { + list3 = this.equipments().filter((i) => + new RegExp(val.name, "g").test(i.name) + ); + } this.data = - Array.from(new Set([...list1, ...list2].map(JSON.stringify))) + Array.from(new Set([...list1, ...list2,...list3].map(JSON.stringify))) .map(JSON.parse) .map((i) => ({ equipment: i, diff --git a/src/views/order/feedbackList.vue b/src/views/order/feedbackList.vue index b086a95..2482697 100644 --- a/src/views/order/feedbackList.vue +++ b/src/views/order/feedbackList.vue @@ -287,33 +287,20 @@ } " > -