MrShi
2025-04-16 090ea2c7d46a7082e978e6c0134d3fbeafaa34a0
提交
已添加1个文件
已修改11个文件
111 ■■■■ 文件已修改
admin/src/assets/icons/8.png 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/subscribe.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/platform/LogisticsRecord/waybill.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/statistics/platformRecord.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/main.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/manifest.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/package-lock.json 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/package.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/task/visitorApprove.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/task/visitorReport.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
screen/src/views/LogisticsEfficiency.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/icons/8.png
admin/src/views/index.vue
@@ -240,7 +240,8 @@
        { name: '访客报备', path: '', url: require('@/assets/icons/home_func1.png'), path: '/business/reportRecord' },
        { name: '隐患随手拍', path: '', url: require('@/assets/icons/home_func2.png'), path: '/operation/danger/record' },
        { name: '预约会议室', path: '', url: require('@/assets/icons/home_func3.png'), path: '/meeting/bookings' },
        { name: '考勤工作台', path: '', url: require('@/assets/icons/home_func4.png') }
        { name: '考勤工作台', path: '', url: require('@/assets/icons/home_func4.png') },
        { name: '食堂消费入口', path: '', url: require('@/assets/icons/8.png') }
      ],
      isShowDetail: false,
      isShowReport: false,
@@ -350,6 +351,11 @@
          window.open(res, '_blank')
        })
      }
      if (item.name == '食堂消费入口') {
        getAppHeaderNav(6).then(res => {
          window.open(res, '_blank')
        })
      }
      this.$router.push(item.path)
    },
    updateDate () {
admin/src/views/platform/LogisticsRecord/subscribe.vue
@@ -49,7 +49,7 @@
        <template v-slot="scope">
          <el-button type="text" v-permissions="['business:platformbooks:detail']"
            @click="handleDetail(scope.row)">预约详情</el-button>
          <el-button type="text" @click="complete([scope.row.jobId])" v-if="[0,1].includes(scope.row.jobStatus)">完成作业</el-button>
          <el-button type="text" @click="complete([scope.row.jobId])" v-if="[0,1,2].includes(scope.row.jobStatus)">完成作业</el-button>
          <el-button type="text" class="red" v-permissions="['business:platformbooks:delete']"
            @click="handleDel(scope.row)">删除</el-button>
        </template>
admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -47,7 +47,7 @@
      </el-table-column>
      <el-table-column prop="name" label="操作" min-width="170" align="center" fixed="right" show-overflow-tooltip>
        <template v-slot="scope">
          <el-button type="text" @click="complete([scope.row.id])" v-if="[0,1].includes(scope.row.status)">完成作业</el-button>
          <el-button type="text" @click="complete([scope.row.id])" v-if="[0,1,2].includes(scope.row.status)">完成作业</el-button>
          <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']"
admin/src/views/statistics/platformRecord.vue
@@ -30,6 +30,7 @@
          <span>{{ scope.row.billCode || scope.row.contractNum }}</span>
        </template>
      </el-table-column>
      <el-table-column prop="totalNum" label="总作业量(万只)" min-width="100" show-overflow-tooltip />
    </el-table>
    <div class="mt20">
      <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
h5/main.js
@@ -6,6 +6,8 @@
import store from './store/index.js'
import Tabbar from '@/components/tarbar.vue'
import navigation from '@/components/Header.vue'
// import Vconsole from 'vconsole'
// let vConsole = new Vconsole();
Vue.config.productionTip = false
h5/manifest.json
@@ -5,6 +5,7 @@
    "versionName" : "1.0.0",
    "versionCode" : "100",
    "transformPx" : false,
    "sassImplementationName": "node-sass",
    /* 5+App特有相关 */
    "app-plus" : {
        "usingComponents" : true,
h5/package-lock.json
@@ -4,10 +4,38 @@
    "lockfileVersion": 1,
    "requires": true,
    "dependencies": {
        "@babel/runtime": {
            "version": "7.27.0",
            "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.0.tgz",
            "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==",
            "requires": {
                "regenerator-runtime": "^0.14.0"
            }
        },
        "copy-text-to-clipboard": {
            "version": "3.2.0",
            "resolved": "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz",
            "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q=="
        },
        "core-js": {
            "version": "3.41.0",
            "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.41.0.tgz",
            "integrity": "sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA=="
        },
        "dayjs": {
            "version": "1.11.13",
            "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
            "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
        },
        "mutation-observer": {
            "version": "1.0.3",
            "resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz",
            "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
        },
        "regenerator-runtime": {
            "version": "0.14.1",
            "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
            "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
        },
        "uniapp-qrcode": {
            "version": "1.0.2",
@@ -18,6 +46,17 @@
            "version": "2.0.37",
            "resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-2.0.37.tgz",
            "integrity": "sha512-iBcWNmQa01Wr+z004G6XIVPDctOrJIAx7LObQceUAPxZh6kJYjIOAMp5JE1K4VpoMV5bKYDpCd0gmX+M4nTEQQ=="
        },
        "vconsole": {
            "version": "3.15.1",
            "resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz",
            "integrity": "sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==",
            "requires": {
                "@babel/runtime": "^7.17.2",
                "copy-text-to-clipboard": "^3.0.1",
                "core-js": "^3.11.0",
                "mutation-observer": "^1.0.3"
            }
        }
    }
}
h5/package.json
@@ -15,6 +15,7 @@
    "dependencies": {
        "dayjs": "^1.11.13",
        "uniapp-qrcode": "^1.0.2",
        "uview-ui": "^2.0.37"
        "uview-ui": "^2.0.37",
        "vconsole": "^3.15.1"
    }
}
h5/pages/staff/task/visitorApprove.vue
@@ -68,7 +68,7 @@
                    <view class="avatar">
                        <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
                        <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
                            src="@/static/staff/ic_shenpiren@2x.png" />
                            src="@/static/staff/ic_shenpiren@2x.png" />
                        <image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image>
                        <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span>
                        <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png"
@@ -140,7 +140,8 @@
<script>
    import {
        getVisitedDetail, // 访客预约详情
        carUseBookAppr
        carUseBookAppr,
        visitsCancel
    } from '@/api'
    export default {
        data() {
@@ -186,7 +187,7 @@
                cancelShow: false
            }
        },
        onLoad(op) {
        onLoad(op) {
            uni.setStorageSync('ywinfo',{})
            this.id = op.id
            this.getDetail()
@@ -195,6 +196,7 @@
            // 取消预约
            cancel() {
                visitsCancel(this.id).then(res => {
                    this.cancelShow = false
                    this.getDetail()
                })
            },
@@ -255,7 +257,7 @@
                })
            },
            handleSub(status) {
                // this.param.flag =
                // this.param.flag =
                this.param = {
                    status
                }
@@ -578,4 +580,4 @@
            margin: 0 -30rpx;
        }
    }
</style>
</style>
h5/pages/staff/task/visitorReport.vue
@@ -100,7 +100,10 @@
      info.approveDateVO.canBeApproved != null &&
      info.approveDateVO.canBeApproved == 1
    " class="main_footer">
      <view class="btn" @click="cancelShow = true" v-if="checkAuth('business:visits:cancel') && [0,1,2,5].includes(info.status)">取消预约</view>
      <view style="width: 30rpx; height: 100%;"></view>
      <view class="btn" @click="handleSub(3)">拒绝</view>
      <view style="width: 30rpx; height: 100%;"></view>
      <view class="btn agree" @click="handleSub(2)">同意</view>
    </view>
@@ -111,17 +114,27 @@
          " placeholder-class="placeholder9" />
        <view class="main_footer">
          <view class="btn" @click="showApprModal = false">取消</view>
          <view style="width: 30rpx; height: 100%;"></view>
          <view class="btn agree" @click="onSubmit">提交</view>
        </view>
      </view>
    </u-popup>
    <!-- 取消预约弹窗 -->
    <u-modal
        :show="cancelShow"
        :showCancelButton="true"
        title="系统提示"
        content='确定取消当前预约吗?'
        @cancel="cancelShow = false"
        @confirm="cancel" />
  </view>
</template>
<script>
import {
  getVisitedReDetail, // 访客预约详情
  carUseBookAppr
  carUseBookAppr,
  visitsCancel
} from '@/api'
export default {
  data() {
@@ -129,6 +142,9 @@
      showApprModal: false,
      param: {},
      info: {},
      userInfo: uni.getStorageSync('userInfo') || {
          permissions: []
      },
      id: '',
      type: '',
@@ -146,7 +162,8 @@
        2: '已通过',
        3: '已拒绝',
        4: '已取消',
      }
      },
      cancelShow: false
    }
  },
  onLoad(op) {
@@ -155,6 +172,17 @@
    this.getDetail()
  },
  methods: {
      checkAuth(str) {
          const permissions = this.userInfo.permissions || []
          return permissions.indexOf(str) > -1
      },
      // 取消预约
      cancel() {
          visitsCancel(this.id).then(res => {
              this.cancelShow = false
              this.getDetail()
          })
      },
    getDetail() {
      const { id } = this
      getVisitedReDetail({ id }).then(res => {
@@ -476,7 +504,8 @@
    background: #ffffff;
    .btn {
      width: 336rpx;
      // width: 336rpx;
      flex: 1;
      height: 88rpx;
      line-height: 88rpx;
      background: #ffffff;
screen/src/views/LogisticsEfficiency.vue
@@ -17,7 +17,7 @@
            <div class="com_header">
              <div class="title">
                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
                <div>累计出库量统计</div>
                <div>累计出库量统计(万只)</div>
              </div>
              <div class="tabs">
                <div class="tab" :class="{ active: activeTab1 == 0 }" @click="tabClick1(0)">本月</div>
@@ -293,7 +293,7 @@
                  <div :class="{ orange: item.num < 200 }" class="item two-swiper-slide swiper-slide"
                    v-for="item in data6.stockList">
                    <div class="la">{{ item.name }}</div>
                    <div class="val">{{ item.num }}万支</div>
                    <div class="val">{{ item.num }}{{item.name.indexOf('托盘') === -1 ? '万支' : '个'}}</div>
                  </div>
                </div>
              </div>
@@ -1990,4 +1990,4 @@
  object-fit: cover;
  z-index: -1;
}
</style>
</style>