| | |
| | | } |
| | | |
| | | /** |
| | | * 开始处理更新状态 |
| | | * 查询订单当前最新状态 |
| | | */ |
| | | export const updateWorkAlarm = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!updateWorkAlarm`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 开始处理更新状态 |
| | | */ |
| | | export const searchStatusById = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!searchStatusById`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 添加告警处理 |
| | | * 更新告警处理 |
| | | */ |
| | | export const addUserWork = (data) => { |
| | | export const updateUserWork = (data) => { |
| | | return axios({ |
| | | method: "post", |
| | | url: `UserWorkAction!addUserWork`, |
| | | url: `UserWorkAction!updateUserWork`, |
| | | data: 'json=' + JSON.stringify(data) |
| | | }) |
| | | } |
| | |
| | | function splitString(str) { |
| | | if (str.length == 0) return [] |
| | | else return str.split(',') |
| | | if (str) { |
| | | if (str.length == 0) { |
| | | return [] |
| | | } else { |
| | | if (str.indexOf(',') != -1) { |
| | | return str |
| | | } else { |
| | | return str.split(',') |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | export default splitString |
| | | export default splitString |
| | |
| | | <template> |
| | | <van-uploader :after-read="afterRead" v-model="getFileList" accept="image/png, image/jpeg" |
| | | :max-size="10 * 1024 * 1024" @oversize="oversize" :disabled="disabled" /> |
| | | :max-size="10 * 1024 * 1024" @oversize="oversize" :disabled="disabled" :readonly="readonly" /> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | readonly: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | afterOrBefore: { |
| | | type: String, |
| | | default: 'before' |
| | |
| | | Form, |
| | | Picker, |
| | | Empty, |
| | | ImagePreview |
| | | } from 'vant'; |
| | | |
| | | import App from './App.vue' |
| | |
| | | Vue.config.productionTip = false |
| | | |
| | | |
| | | Vue.use(Toast).use(Notify).use(Picker).use(Form).use(Image).use(Dialog).use(Tabbar).use(TabbarItem).use(CellGroup).use(Cell).use(Icon).use(Button).use(NavBar).use(Grid).use(GridItem).use(Row).use(Col).use(Collapse).use(CollapseItem).use(Steps).use(Step).use(Divider).use(Switch).use(Tag).use(Search).use(Field).use(Uploader).use(Popup).use(CheckboxGroup).use(Checkbox).use(PullRefresh).use(ActionSheet).use(List).use(Tab).use(Tabs).use(Empty); |
| | | Vue.use(Toast).use(Notify).use(Picker).use(Form).use(Image).use(Dialog).use(Tabbar).use(TabbarItem).use(CellGroup).use(Cell).use(Icon).use(Button).use(NavBar).use(Grid).use(GridItem).use(Row).use(Col).use(Collapse).use(CollapseItem).use(Steps).use(Step).use(Divider).use(Switch).use(Tag).use(Search).use(Field).use(Uploader).use(Popup).use(CheckboxGroup).use(Checkbox).use(PullRefresh).use(ActionSheet).use(List).use(Tab).use(Tabs).use(Empty).use(ImagePreview); |
| | | |
| | | Vue.prototype.$notify = Notify; |
| | | Vue.prototype.$dialog = Dialog; |
| | |
| | | <div class="label"> |
| | | 处理状态: |
| | | </div> |
| | | <div class="text" v-if="alarmInfo.status==2"> |
| | | <div class="text" v-if="alarmInfo.status==2&&stepsActive==0" style="color: #eac406;"> |
| | | 处理中 |
| | | </div> |
| | | <div class="text" v-else-if="alarmInfo.status==3"> |
| | | 已处理 |
| | | <div class="text" v-else-if="alarmInfo.status==2&&stepsActive==1" style="color: #eac406;"> |
| | | 待审核 |
| | | </div> |
| | | <div class="text" v-else> |
| | | <div class="text" v-else-if="alarmInfo.status==3" style="color: #07c160;"> |
| | | 已完成 |
| | | </div> |
| | | <div class="text" v-else style="color: #4B88F9;"> |
| | | 待处理 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="subBtn" @click="startHandle" v-if="alarmInfo.status==1">开始处理</div> |
| | | <div class="card" v-if="alarmInfo.status==2"> |
| | | <div class="commonTitle cardTitle"> |
| | | 订单状态 |
| | | </div> |
| | | <van-steps :active="stepsActive"> |
| | | <van-step>处理中</van-step> |
| | | <van-step>待审核</van-step> |
| | | <van-step>已完成</van-step> |
| | | </van-steps> |
| | | </div> |
| | | <div class="subBtn" @click="toPage('edit')" v-if="alarmInfo.status==2">继续处理</div> |
| | | <div class="subBtn" @click="toPage('edit')" v-if="alarmInfo.status==2&&stepsActive==0">继续处理</div> |
| | | <div class="card" v-else-if="alarmInfo.status==2&&stepsActive==1||alarmInfo.status==2&&stepsActive==2"> |
| | | <div class="commonTitle cardTitle"> |
| | | 告警处理 |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 问题描述: |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.description}} |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理前照片: |
| | | </div> |
| | | <div class="text"> |
| | | <div class="van-uploader__wrapper" |
| | | v-if="handleInfo.imageBefore&&handleInfo.imageBefore.split(',').length>0"> |
| | | <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageBefore.split(',')" :key="i" |
| | | @click="toShowImgpreview(handleInfo.imageBefore.split(','))"> |
| | | <div class="van-image van-uploader__preview-image"> |
| | | <img :src="item" class="van-image__img" style="object-fit: cover;"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理方法: |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.workWay}} |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 处理后照片: |
| | | </div> |
| | | <div class="text"> |
| | | <div class="van-uploader__wrapper" v-if="handleInfo.imageAfter&&handleInfo.imageAfter.split(',').length>0"> |
| | | <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageAfter.split(',')" :key="i" |
| | | @click="toShowImgpreview(handleInfo.imageAfter.split(','))"> |
| | | <div class="van-image van-uploader__preview-image"> |
| | | <img :src="item" class="van-image__img" style="object-fit: cover;"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="commonTitle"> |
| | | <div class="label"> |
| | | 意见建议: |
| | | </div> |
| | | <div class="text"> |
| | | {{handleInfo.workSuggest}} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <van-image-preview v-model="showImgPreview" :images="ImgPreviewList"> |
| | | </van-image-preview> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | updateWorkAlarm |
| | | updateWorkAlarm, |
| | | searchStatusById |
| | | } from '@/assets/js/api' |
| | | import vUpload from '@/components/v-upload.vue' |
| | | export default { |
| | | components: { |
| | | vUpload |
| | | }, |
| | | data() { |
| | | return { |
| | | showImgPreview: false, |
| | | ImgPreviewList: [], |
| | | stepsActive: 0, |
| | | alarmInfo: { |
| | | id: 0, |
| | |
| | | alarmname: "", |
| | | alarmtype: "" |
| | | } |
| | | } |
| | | }, |
| | | handleInfo: {} |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.alarmInfo = JSON.parse(this.$route.query.alarmData); |
| | | this.loadStatus() |
| | | }, |
| | | methods: { |
| | | toPage(type) { |
| | |
| | | type: type |
| | | } |
| | | }) |
| | | }, |
| | | //点击图片显示图片预览层 |
| | | toShowImgpreview(list) { |
| | | this.ImgPreviewList = list; |
| | | this.showImgPreview = true; |
| | | }, |
| | | //查询订单当前最新状态 |
| | | loadStatus() { |
| | | let postData = { |
| | | id: this.alarmInfo.id |
| | | } |
| | | searchStatusById(postData).then((res) => { |
| | | let resData = JSON.parse(res.data.result) |
| | | if (resData.code == 1) { |
| | | this.alarmInfo.status = resData.data.status; |
| | | if (resData.data.userWorkList.length > 0) { |
| | | this.handleInfo = resData.data.userWorkList[0]; |
| | | this.stepsActive = this.handleInfo.checkStatus |
| | | } |
| | | } |
| | | }).catch((err) => { |
| | | console.log(err) |
| | | }); |
| | | }, |
| | | //开始处理 |
| | | startHandle() { |
| | |
| | | <style scoped> |
| | | .alarm-details { |
| | | width: 100%; |
| | | height: 100%; |
| | | min-height: 100%; |
| | | background: #F5F5F5; |
| | | } |
| | | |
| | |
| | | border-bottom: 1px solid #EEEEEE; |
| | | margin-bottom: 22px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .cardTitle { |
| | |
| | | .commonTitle .label { |
| | | line-height: 40px; |
| | | display: inline-block; |
| | | width: 150px; |
| | | width: 170px; |
| | | } |
| | | |
| | | .commonTitle .text { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .subBtn { |
| | |
| | | </van-nav-bar> |
| | | <div class="handleCon"> |
| | | <div class="textareaCon"> |
| | | <van-field v-model="alarmInfo.describe" rows="2" autosize label="告警描述" type="textarea" placeholder="请输入告警描述…" |
| | | <van-field v-model="alarmInfo.description" rows="2" autosize label="告警描述" type="textarea" placeholder="请输入告警描述…" |
| | | show-word-limit /> |
| | | <v-upload :value="alarmInfo.imageBefore" @valChange="beforeUploadChange" afterOrBefore="before" class="upload"> |
| | | </v-upload> |
| | |
| | | show-word-limit /> |
| | | </div> |
| | | <div class="btnCon"> |
| | | <div class="subBtn" @click="submit">保存</div> |
| | | <div class="subBtn">提交</div> |
| | | <div class="subBtn" @click="submit(0)">保存</div> |
| | | <div class="subBtn" @click="submit(1)">提交</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <script> |
| | | import vUpload from '@/components/v-upload.vue' |
| | | import { |
| | | addUserWork, |
| | | updateUserWork, |
| | | serchByCondition |
| | | } from '@/assets/js/api' |
| | | export default { |
| | |
| | | data() { |
| | | return { |
| | | alarmInfo: { |
| | | description: '', |
| | | checkStatus: 0, |
| | | createTime: "", |
| | | endTime: "", |
| | | createTime: null, |
| | | endTime: null, |
| | | imageAfter: "", |
| | | imageBefore: "", |
| | | managerId: 0, |
| | | note: "", |
| | | userId: 0, |
| | | userId: sessionStorage.getItem('userId'), |
| | | workId: 0, |
| | | workSuggest: "", |
| | | workWay: "", |
| | |
| | | }); |
| | | }, |
| | | //保存提交 |
| | | submit() { |
| | | addUserWork(this.alarmInfo).then((res) => { |
| | | submit(checkStatus) { |
| | | this.alarmInfo.checkStatus = checkStatus; |
| | | let endTime = this.$units.timeFormat(new Date().getTime, 'yyyy-mm-dd hh:MM:ss'); |
| | | this.alarmInfo.endTime = endTime; |
| | | if (this.alarmInfo.description == '') { |
| | | this.$toast('请输入告警描述…') |
| | | return |
| | | } |
| | | if (this.alarmInfo.imageBefore == '') { |
| | | this.$toast('请上传处理前照片…') |
| | | return |
| | | } |
| | | if (this.alarmInfo.workWay == '') { |
| | | this.$toast('请输入处理方法…') |
| | | return |
| | | } |
| | | if (this.alarmInfo.imageAfter == '') { |
| | | this.$toast('请上传处理后照片…') |
| | | return |
| | | } |
| | | updateUserWork(this.alarmInfo).then((res) => { |
| | | let resData = JSON.parse(res.data.result) |
| | | if (resData.code == 1) { |
| | | this.$toast(resData.msg) |
| | |
| | | searchAllByUserId(postData).then((res) => { |
| | | let resData = JSON.parse(res.data.result).data |
| | | tab.loading = false; |
| | | console.log(resData) |
| | | if (resData && resData.data && resData.data.length > 0) { |
| | | tab.listData.push(...resData.data) |
| | | } |
| | |
| | | return |
| | | } |
| | | // 开启等待框 |
| | | |
| | | this.$toast.loading({ |
| | | message: '登录中...', |
| | | duration: 0 |
| | | }) |
| | | login(self.userName, self.password).then(res => { |
| | | // 对结果进行处理 |
| | | console.log(res) |
| | | self.handleLogin(res) |
| | | }).catch(error => { |
| | | // 关闭等待 |
| | |
| | | // this.loading = false; |
| | | let rs = JSON.parse(res.data.result); |
| | | if (rs.code == 1) { |
| | | self.$toast("登录成功"); |
| | | self.$toast("登录成功!"); |
| | | sessionStorage.setItem('username', self.username); |
| | | sessionStorage.setItem('userId', rs.data); |
| | | sessionStorage.setItem('userPower', rs.data2); |
| | | self.$router.push({ |
| | | path: '/index' |
| | | }) |