| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425 |
- const { createApp, ref ,onMounted,createVNode, render,computed,watch} = Vue
- createApp({
- setup() {
- watch(() => tool.loading,(to, from) => {
- })
- onMounted(()=>{
- serviceOption()
- operationRole()
- })
- const formData = ref({
- sa_serviceorderid:0,
- sa_orderid:0,
- siteid:"HY",
- servicetype:"",
- sys_enterpriseid:0,
- sonum:'',
- enterprisename:"",
- class1:"",
- class2:"",
- province:"",
- city:"",
- county:"",
- address:"",
- scenecontact:"",
- phonenumber:"",
- scenecontactphonenumber:'',
- reason:'',
- scenecontactrole:'',
- begdate:'',
- enddate:'',
- remarks:'',
- })
- const restForm = ()=>{
- formData.value = {
- sa_serviceorderid:0,
- sa_orderid:0,
- siteid:"HY",
- servicetype:"",
- sys_enterpriseid:0,
- enterprisename:"",
- class1:"",
- class2:"",
- province:"",
- city:"",
- county:"",
- address:"",
- name:"",
- phonenumber:"",
- scenecontactphonenumber:'',
- reason:'',
- scenecontactrole:'',
- begdate:'',
- enddate:'',
- remarks:'',
- }
- }
- // 判断是否登陆,根据登陆角色类型跳转不同页面
- const isLogin = (type)=>{
- if (!sessionStorage.getItem('loginInfo')){
- $('#myModal').modal('show')
- } else {
- let user = sessionStorage.getItem('loginInfo')
- user = JSON.parse(user)
- if (type == 'apply') {
- $('#myModal').modal('hide')
- linkOf('./ServiceOfficial.html')
- } else {
- let link = {
- Official:'./ServiceOfficialApply.html',
- tourist:'./ServiceOfficialReservation.html'
- }
- linkOf(link[user.type])
- }
-
- }
- }
-
- // 跳转
- const linkOf = (url)=> {
- window.location.href = url
- }
- // 登陆账号验证码数据
- const form = ref({
- phoneNumber:'',
- verifyCode:''
- })
- const isSend = computed(()=>{
- return time.value === 0 ? false : true
- })
- // 服务类型数据
- const serviceOptionData = ref({})
- const serviceOption = async ()=>{
- const res = await instance.post('',{
- "id":20240902102603,
- "content": {
- "siteid":"HY",
- "customerphone":JSON.parse(sessionStorage.getItem('loginInfo')).customerphone,
- }
- })
- serviceOptionData.value = res.data.data
- }
- // 选择服务类型
- const onChangeService = (item,key)=>{
- formData.value[key] = item
- if (item == '售前' || item == '历史售后') {
- formData.value.sa_orderid = formData.value.sonum = ''
- }
- }
-
- // 客诉大类数据
- const serviceKSOptionData = ["内漏", "外漏", "性能失效", "配件损坏或遗失", "外观问题", "异响或抖动", "打不开/不通水", "扭矩大", "其他"]
- // 应用系统数据
- const serviceSysOptionData = ["暖通系统", "消防系统", "其他"]
- // 查询企业信息
- const EnterpriseParam = ref({
- "id":20220920083901,
- "content": {
- "siteid":"HY",
- "pageNumber":1,
- "pageSize":20,
- "where":{
- "condition":'',
- "type":9,
- }
- }
- })
- const EnterprisePageTotal = ref(0)
- const EnterpriseList = ref([])
- const getEnterpriseData = async ()=>{
- if (!JSON.parse(sessionStorage.getItem('loginInfo'))) return false
- const res = await instance.post('',EnterpriseParam.value)
- EnterpriseList.value = res.data.data
- EnterprisePageTotal.value = res.data.pageTotal
- }
- // 附件上传
- const previewList = ref([])
- const fileChange = ()=>{
- tool.fileChange((rs)=>{
- // 监听loading变化
- function createObservable(obj) {
- return new Proxy(obj, {
- get(target, property) {
- return target[property];
- },
- set(target, property, value) {
- previewList.value = previewList.value.filter(e=>{if(e.file.name == rs.file.name){e.loading = rs.loading} return e})
- target[property] = value;
- return true;
- }
- });
- }
- rs.createObservable = createObservable
- // tool.getUploadUrl(rs)
- previewList.value.push(rs)
- })
- }
-
- // 下一步
- const step = ref(0)
- const steps = ref(['填写信息','添加订单商品','提交申请'])
- const nextStep = async ()=>{
- const rs = await tool.validateFormData(formData.value)
- if (!rs) return false
- if (step.value == steps.value.length - 1) return false
- step.value ++
- if (step.value == 1) {
- getorderProdData()
- }
- }
- const preStep = ()=>{
- step.value = step.value - 1
- }
- const orderProdData = ref({
- data:[]
- })
- const odParam = ref({
- id:20230206161703,
- content:{
- pageNumber:1,
- pageSize:100,
- sa_orderid: '',
- where:{
- condition:''
- }
- }
- })
- const getorderProdData = async ()=>{
- odParam.value.content.sa_orderid = formData.value.sa_orderid
- const res = await instance.post('',odParam.value)
- res.data.data = res.data.data.map(e=>{
- e.ischeck = false
- return e
- })
- orderProdData.value = res.data
- }
- // 提交单据
- const result = ref({})
- const submitData = async ()=>{
- if (!sessionStorage.getItem('loginInfo')){
- $('#myModal').modal('show')
- } else {
- const rs = await tool.validateFormData(formData.value)
- if (!rs) return false
- step.value = step.value + 1
- formData.value.phonenumber = JSON.parse(sessionStorage.getItem('loginInfo')).customerphone
- const res = await instance.post('',{
- "id":20230206091403,
- "content": formData.value
- })
- result.value.code = res.data.code
- if (res.data.code == 1) {
- addProdToBill(res.data.data.sa_serviceorderid)
- beginUpload(res.data.data.sa_serviceorderid)
- serviceBillDetail(res.data.data.sa_serviceorderid)
- } else {
- result.value.errmsg = res.data.msg
- }
- }
-
- }
- // 提交单据后插入选择商品
- const addProdToBill = async (dataid)=>{
- const res = await instance.post('',{
- "id":20230206161803,
- "content": {
- iteminfos:orderProdData.value.data.filter(e=>{if (e.ischeck == true){return e}}).map(e=>{return {
- itemid:e.itemid,
- qty:1,
- reason:'',
- sa_serviceorderitemsid:0
- }}),
- sa_serviceorderid:dataid
- }
- })
- }
- // 数据提交后开始附件上传
- const beginUpload = (id)=>{
- previewList.value.forEach(e=>{
- e.loading = true
- e.dataid = id
- tool.getUploadUrl(e,'sa_serviceorder')
- })
- listenFileComplete()
- }
- const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg'];
- // 删除附件
- const deleteFile = (index)=>{
- previewList.value.splice(index,1)
- document.getElementById('fileInput').value = '';
- }
- // 分页切换
- const pageChange = (page)=>{
- if (page < 1) return false
- if (page > EnterprisePageTotal.value) return false
- EnterpriseParam.value.content.pageNumber = page
- getEnterpriseData()
- }
-
- const entTableVisiable = ref(false)
- // 选择表格数据
- const tableDataSelect = (soure,data)=>{
- switch (soure) {
- case 'enterprise':
- formData.value = Object.assign({},formData.value,data)
- $('#input_province').val(data.province).trigger('change');
- $('#input_city').val(data.city).trigger('change');
- entTableVisiable.value = false
- formData.value.sa_orderid = ''
- break;
- case 'order':
- formData.value.sa_orderid = data.sa_orderid
- formData.value.sonum = data.sonum
- orderTableVisiable.value = false
- break;
- default:
- break;
- }
- }
- // 切换日期
- const dateChange = (dom)=>{
- if (dom == '#begdate') {
- formData.value.begdate = $(dom).val()
- } else {
- formData.value.enddate = $(dom).val()
- }
-
- }
- //关联订单查询
- const orderTableVisiable = ref(false)
- const orderData = ref({
- })
- const orderParam = ref({
- id:20230206091503,
- content:{
- pageNumber: 1,
- pageSize: 20,
- sys_enterpriseid: 0,
- where:{
- condition:''
- }
- }
- })
- const getOrderData = async ()=>{
- orderParam.value.content.sys_enterpriseid = formData.value.sys_enterpriseid
- const res = await instance.post('',orderParam.value)
- orderData.value = res.data
- }
- // 订单分页切换
- const pageOrderChange = (page)=>{
- if (page < 1) return false
- if (page > orderData.value.pageTotal) return false
- orderParam.value.content.pageNumber = page
- getOrderData()
- }
- // 判断操作账号角色
- const hasEntSelectOp = ref(false)
- const operationRole = async ()=>{
- let roles = [0,1]
- let user = JSON.parse(sessionStorage.getItem('loginInfo')).resultobject.account_list[0]
- if (!roles.includes(user.usertype)) {
- const res = await instance.post('',{
- "classname": "common.usercenter.usercenter",
- "method": "queryUserMsg",
- "content": {}
- })
- formData.value.enterprisename = res.data.data.enterprise.enterprisename
- formData.value.sys_enterpriseid = res.data.data.enterprise.sys_enterpriseid
- hasEntSelectOp.value = false
- } else {
- hasEntSelectOp.value = true
- }
- }
- const isComplete = ref(false)
- // 监听附件上传是否已经完成
- listenFileComplete = ()=>{
- const timer = setInterval(() => {
- let arr = previewList.value.filter(e=>{
- if (e.loading == true) {
- return e
- }
- })
- if (arr.length > 0) {
- isComplete.value = false
- } else {
- isComplete.value = true
- clearInterval(timer)
- }
- }, 1000);
- }
- // 查询服务单详情
- const detailData = ref({})
- const serviceBillDetail = async (dataid)=>{
- const res = await instance.post('',{
- id:20230206091603,
- content:{
- sa_serviceorderid:dataid
- }
- })
- detailData.value = res.data.data
- tool.linkOf('./ServiceOfficialApplyList.html')
- }
- return {
- isLogin,
- linkOf,
- onChangeService,
- getEnterpriseData,
- EnterpriseList,
- formData,
- serviceOptionData,
- serviceKSOptionData,
- serviceSysOptionData,
- fileChange,
- previewList,
- submitData,
- imageExtensions,
- deleteFile,
- pageChange,
- EnterpriseParam,
- EnterprisePageTotal,
- entTableVisiable,
- hasEntSelectOp,
- dateChange,
- tableDataSelect,
- orderParam,
- orderData,
- getOrderData,
- pageOrderChange,
- orderTableVisiable,
- step,
- nextStep,
- preStep,
- steps,
- restForm,
- orderProdData,
- addProdToBill,
- isComplete,
- beginUpload,
- detailData,
- result,
- odParam,
- getorderProdData
- }
- }
- }).mount('#app')
|