ll
liukangdong
2024-10-10 15fb0231e41bf688834c754c6ae3ded5b54d1f97
ll
已添加3个文件
已修改1个文件
345 ■■■■■ 文件已修改
admin/src/api/system/sms.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/waybillQuery.vue 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/components/WaybillDetail.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/system/smsMessage.vue 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/system/sms.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
import request from '@/utils/request'
// çŸ­ä¿¡é€šçŸ¥ åˆ†é¡µåˆ—表
export function getSmsList (data) {
  return request.post('/visitsAdmin/cloudService/business/smsConfig/page', data)
}
// çŸ­ä¿¡é€šçŸ¥ çŠ¶æ€æ›´æ–°
export function SmsStatusUpdate (data) {
  return request.post('/visitsAdmin/cloudService/business/smsConfig/updateById', data)
}
admin/src/views/platform/LogisticsRecord/waybillQuery.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,181 @@
<template>
  <div class="main_app">
    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @changeForm='changeForm' @handleQuery="getList(1)"
      @clear="clear">
    </QueryForm>
    <div class="pt16">
      <el-button :loading="exLoading" @click="handleEx"
        v-permissions="['business:platformjob:exportExcel']">导出</el-button>
    </div>
    <el-table class="mb20" v-loading="loading" :data="list" stripe>
      <el-table-column prop="billCode" label="姓名" min-width="100" show-overflow-tooltip />
      <el-table-column prop="carCodeFront" label="手机号" min-width="100" show-overflow-tooltip />
      <el-table-column prop="taskOrigin" label="营销区域" min-width="100" show-overflow-tooltip />
      <el-table-column prop="carrierName" label="备注" min-width="100" show-overflow-tooltip />
      <el-table-column prop="driverName" label="最后更新时间" min-width="100" show-overflow-tooltip />
      <el-table-column prop="name" label="操作" min-width="120" align="center" fixed="right" show-overflow-tooltip>
        <template v-slot="scope">
          <el-button v-if="scope.row.status == '12'" type="text" class="red" v-permissions="['business:platformjob:delete']"
            @click="handleDel(scope.row)">删除</el-button>
          <el-button v-if="scope.row != 12" type="text" v-permissions="['business:platformjob:query']"
            @click="handleDetail(scope.row)">编辑</el-button>
        </template>
      </el-table-column>
    </el-table>
    <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
    <!--  -->
    <!--  -->
    <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" />
  </div>
</template>
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import { platformJobPage, platformJobExport, platformJobDel } from '@/api'
import { statusMap } from '../config'
import WaybillDetailRef from "../components/WaybillDetail.vue"
import GlobalWindow from '@/components/common/GlobalWindow'
import UploadFaceImg from '@/components/common/UploadFaceImg'
import { Message } from 'element-ui'
import dayjs from 'dayjs'
export default {
  components: {
    Pagination,
    QueryForm,
    WaybillDetailRef,
    GlobalWindow,
    UploadFaceImg
  },
  data() {
    return {
      statusMap,
      isShowDetail: false,
      exLoading: false,
      loading: false,
      pagination: {
        pageSize: 10,
        page: 1,
        total: 0
      },
      filters: {
        selDate: [],
        fastdate: 0
      },
      list: [],
      queryFormConfig: {
        formItems: [
          {
            filed: 'name',
            type: 'input',
            label: '姓名'
          },
          {
            filed: 'phone',
            type: 'input',
            label: '手机号'
          }
        ],
        online: true
      },
    }
  },
  created() {
    this.changeRadio('0')
    this.getList()
  },
  methods: {
    changeRadio(day) {
      const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
      this.$set(this.filters, 'selDate', arr)
      this.getList()
    },
    changeForm(str) {
      if (str === 'selDate') {
        this.$set(this.filters, 'fastdate', null)
        this.getList()
      }
    },
    getList(page) {
      const { pagination, filters } = this
      this.loading = true
      platformJobPage({
        model: {
          ...filters,
          jobType: '0',
          createDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
          createDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
        },
        capacity: pagination.pageSize,
        page: page || pagination.page,
      }).then(res => {
        this.loading = false
        this.list = res.records || []
        this.list.forEach(item => {
          item.inTypeTemp = item.inType == 0 ? '整托盘' : '件烟'
          item.taskOrigin = 'WMS获取'
        })
        this.pagination.total = res.total || 0
      }, () => {
        this.loading = false
      })
    },
    handleDel(row) {
      this.$dialog.exportConfirm('确认删除吗?').then(() => {
        platformJobDel(row.id).then(res => {
          Message.success('删除成功')
          this.getList()
        })
      })
    },
    handleEx() {
      this.$dialog.exportConfirm('确认导出吗?')
        .then(() => {
          this.exLoading = true
          platformJobExport({
            page: this.pagination.page,
            capacity: 1000000,
            jobType: '0',
            model: this.filters
          })
            .then(response => {
              this.download(response)
            })
            .catch(e => {
              this.$tip.apiFailed(e)
            })
            .finally(() => {
              this.exLoading = false
            })
        })
    },
    clear() {
      this.pagination.page = 1
      this.filters = {
        selDate: [],
        fastdate: 0
      }
      this.getList()
    },
    handleDetail(row) {
      this.isShowDetail = true
      this.$nextTick(() => {
        this.$refs.WaybillDetailRef.isShowModal = true
        this.$refs.WaybillDetailRef.id = row.id
        this.$refs.WaybillDetailRef.getDetail()
      })
    },
    handleSizeChange(capacity) {
      this.pagination.pageSize = capacity
    }
  }
}
</script>
<style lang="scss" scoped>
.param_title {
  font-size: 18px;
  font-weight: 600;
  color: #000000;
  margin-bottom: 15px;
}
</style>
admin/src/views/platform/components/WaybillDetail.vue
@@ -27,7 +27,16 @@
      <div class="title">合同列表</div>
      <div class="content">
        <div class="item" v-for="item in info.wmsJobContractVOList">
          <div class="contract">合同号:{{ item.contractCode }}</div>
          <div class="contract">
            <span>合同号:{{ item.contractCode }}</span>
            <div>
              <span class="scs" v-if="item.platformWmsDetailList[0].status == 1">WMS作业已完成</span>
              <span class="pad" v-if="item.platformWmsDetailList[0].status == 0">WMS作业未完成</span>
              <span class="err" v-if="item.platformWmsDetailList[0].status == 2">WMS作业已取消</span>
              <span class="scs" v-if="item.platformWmsDetailList[0].lockStatus == 1">电子锁已上锁</span>
              <span class="pad" v-if="item.platformWmsDetailList[0].lockStatus == 0">电子锁未上锁</span>
            </div>
          </div>
          <div class="placeholder6">收货地:{{ item.address }}</div>
          <div class="list">
            <div class="line" v-for="line in item.platformWmsDetailList">
@@ -151,6 +160,17 @@
        font-size: 15px;
        color: #279baa;
        margin-bottom: 4px;
        display: flex;
        justify-content: space-between;
        .scs{
          color: #00ba67;
        }
        .pad{
          color: #f19c3f;
        }
        .err{
          color: red;
        }
      }
      .line {
admin/src/views/system/smsMessage.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,132 @@
<template>
  <div class="main_app">
    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)"
      @clear="clear">
    </QueryForm>
    <!-- <div class="pt16">
      <el-button :loading="exLoading" @click="handleEx"
        v-permissions="['business:platformjob:exportExcel']">导出</el-button>
    </div> -->
    <el-table class="mb20" v-loading="loading" :data="list" stripe>
      <el-table-column prop="name" label="消息标题" min-width="160" show-overflow-tooltip />
      <el-table-column prop="code" label="消息编码" min-width="150" show-overflow-tooltip />
      <el-table-column prop="content" label="消息模板" min-width="300" show-overflow-tooltip />
      <el-table-column label="状态" width="120" align="center" fixed="right">
        <template v-slot="scope">
          <el-switch v-model="scope.row.status" @change="changeStatus(scope.row)" :active-value="0" :inactive-value="1">
          </el-switch>
        </template>
      </el-table-column>
    </el-table>
    <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
  </div>
</template>
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import { getSmsList, SmsStatusUpdate } from '@/api/system/sms'
import GlobalWindow from '@/components/common/GlobalWindow'
import { Message } from 'element-ui'
import dayjs from 'dayjs'
export default {
  components: {
    Pagination,
    QueryForm,
    GlobalWindow,
  },
  data() {
    return {
      isShowDetail: false,
      exLoading: false,
      loading: false,
      pagination: {
        pageSize: 10,
        page: 1,
        total: 0
      },
      filters: {},
      list: [],
      queryFormConfig: {
        formItems: [
          {
            filed: 'name',
            type: 'input',
            label: '消息标题'
          },
          {
            filed: 'status',
            type: 'select',
            label: '启用状态',
            options: [
              { value: 0, label: '启用' },
              { value: 1, label: '禁用' },
            ]
          },
          {
            filed: 'code',
            type: 'input',
            label: '消息编码'
          }
        ],
        online: true
      },
    }
  },
  created() {
    this.getList()
  },
  methods: {
    changeStatus(row) {
      console.log('row', row);
      SmsStatusUpdate({
        ...row
      }).then(res => {
        Message.success('状态更新成功')
      }, () => {
        this.getList()
      })
    },
    getList(page) {
      const { pagination, filters } = this
      this.loading = true
      getSmsList({
        model: {
          ...filters,
        },
        capacity: pagination.pageSize,
        page: page || pagination.page,
      }).then(res => {
        this.loading = false
        this.list = res.records || []
        this.list.forEach(item => {
          item.inTypeTemp = item.inType == 0 ? '整托盘' : '件烟'
          item.taskOrigin = 'WMS获取'
        })
        this.pagination.total = res.total || 0
      }, () => {
        this.loading = false
      })
    },
    clear() {
      this.pagination.page = 1
      this.filters = {}
      this.getList()
    },
    handleSizeChange(capacity) {
      this.pagination.pageSize = capacity
    }
  }
}
</script>
<style lang="scss" scoped>
.param_title {
  font-size: 18px;
  font-weight: 600;
  color: #000000;
  margin-bottom: 15px;
}
</style>