''
liukangdong
2024-05-16 e016353b27ac0694d52966b9e573dc8d5beb3359
''
已添加1个文件
已修改3个文件
210 ■■■■■ 文件已修改
admin/src/components/common/GlobalWindow.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/application/index.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/task/taskDetail.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/vue.config.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/common/GlobalWindow.vue
@@ -21,6 +21,7 @@
    <div v-if="withFooter" class="window__footer">
      <slot name="footer">
        <el-button @click="confirm" :loading="confirmWorking" type="primary">{{text}}</el-button>
        <slot name="btns" />
        <el-button @click="close">{{ backText }}</el-button>
      </slot>
    </div>
@@ -70,6 +71,7 @@
      this.$emit('confirm')
    },
    close () {
      this.$emit('close')
      this.$emit('update:visible', false)
    }
  }
admin/src/views/application/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
<template>
  <div class="main_app">
    <div class="one_level" v-for="(menu, i) in dataList" :key="i">
      <div class="title">
        {{ menu.name }}
      </div>
      <div class="list">
        <div class="item" @click="handleClick(item)" v-for="item in menu.children" :key="item.name">
          <img src="" alt="" class="icon" />
          <div class="name">{{ item.name }}</div>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data () {
    return {
      dataList: [
        {
          name: '业务中心',
          children: [
            { name: '用车申请记录', url: '' },
            { name: '会议室预约记录', url: '' },
            { name: '随患随手拍记录', url: '' },
            { name: '用餐记录', url: '' },
            { name: 'dddd', url: '' }
          ]
        },
        {
          name: '月台中心',
          children: [
            { name: '用车申请记录', url: '' },
            { name: '会议室预约记录', url: '' },
            { name: '随患随手拍记录', url: '' },
            { name: '用餐记录', url: '' },
            { name: 'dddd', url: '' }
          ]
        }
      ]
    }
  },
  methods: {
    handleClick (item) {
      console.log(item)
    }
  }
}
</script>
<style lang="scss" scoped>
.one_level {
  padding: 16px 0;
  .title {
    font-size: 16px;
    font-weight: 600;
    border-bottom: 1px solid #cccccc;
    padding: 12px 16px;
    margin-bottom: 20px;
  }
  .list {
    display: flex;
    flex-wrap: wrap;
    .item {
      display: flex;
      align-items: center;
      margin-bottom: 20px;
      width: 25%;
      .icon {
        width: 60px;
        height: 60px;
        margin-right: 12px;
      }
    }
  }
}
</style>
admin/src/views/task/taskDetail.vue
@@ -5,6 +5,7 @@
    backText="拒绝"
    :visible.sync="isShowModal"
    @confirm="confirm"
    @close="reject"
  >
    <div class="modal_wrap">
      <div class="modal_content">
@@ -65,7 +66,11 @@
            <el-table-column label="证件类型" prop="" min-width="80" />
            <el-table-column label="证件号码" prop="" min-width="120" />
            <el-table-column label="公司名称" prop="" min-width="120" />
            <el-table-column label="人脸照片" prop="" min-width="80" />
            <el-table-column label="人脸照片" prop="" min-width="80">
              <template slot-scope="{ row }">
                <el-image :src="row.url" :preview-src-list="[row.url]"> </el-image>
              </template>
            </el-table-column>
          </el-table>
        </div>
      </div>
@@ -110,6 +115,79 @@
        </div>
      </div>
    </div>
    <!--  -->
    <template #btns>
      <el-button type="primary" plain @click="handleTransfer">转交</el-button>
    </template>
    <!--  åŒæ„/拒绝 -->
    <el-dialog
      append-to-body
      :title="apprTitle"
      :visible.sync="isShowAppr"
      width="480px"
    >
      <el-input
        type="textarea"
        :placeholder="apprTitle + '说明,非必填'"
        :rows="4"
        v-model="param.explain"
      />
      <span slot="footer" class="dialog-footer">
        <el-button @click="isShowAppr = false">取消</el-button>
        <el-button type="primary" @click="isShowAppr = false">确定</el-button>
      </span>
    </el-dialog>
    <!-- é𐿂£ -->
    <el-dialog
      append-to-body
      title="隐患"
      :visible.sync="isShowProblem"
      width="480px"
    >
      <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px">
        <el-form-item label="退回时间">
          <el-date-picker
            class="w300"
            value-format="yyyy-MM-dd"
            type="date"
            placeholder="选择日期"
            v-model="param.date"
          />
        </el-form-item>
        <el-form-item label="整改前">
          <div class="df_ac">
            <img src="@/assets/avatar/man.png" />
            <el-upload
              class="avatar-uploader"
              action="https://jsonplaceholder.typicode.com/posts/"
              :show-file-list="false"
              :on-success="handleAvatarSuccess"
              :before-upload="beforeAvatarUpload"
            >
              <img v-if="param.url" :src="param.url" class="avatar" />
              <div v-else class="upload_box">
                <el-icon class="el-icon-plus icon" />
                <div class="text">图片/视频</div>
              </div>
            </el-upload>
          </div>
        </el-form-item>
        <el-form-item label="退回说明">
          <el-input
            type="textarea"
            placeholder="请填写说明"
            :rows="4"
            v-model="param.explain"
          />
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="isShowProblem = false">取消</el-button>
        <el-button type="primary" @click="isShowProblem = false"
          >确定</el-button
        >
      </span>
    </el-dialog>
  </GlobalWindow>
</template>
@@ -123,18 +201,49 @@
      isShowModal: false,
      detail: {
        datalist: [{}]
      }
      },
      isShowAppr: false,
      apprTitle: '同意',
      param: {},
      isShowProblem: false,
      rules: {}
    }
  },
  methods: {
    confirm() {
      console.log('--')
    }
    },
    handleTransfer() {
      this.isShowProblem = true
    },
    reject() { },
    handleAvatarSuccess() { },
    beforeAvatarUpload() { }
  }
}
</script>
<style lang="scss" scoped>
.upload_box {
  width: 84px;
  height: 84px;
  border-radius: 4px;
  background-color: #f7f7f7;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #999999;
  border: 1px solid #e4e4e4;
  .icon {
    font-size: 24px;
  }
  .text {
    font-size: 12px;
  }
}
.modal_wrap {
  display: flex;
  height: 100%;
admin/vue.config.js
@@ -1,5 +1,10 @@
// è¯¦ç»†é…ç½®è¯·å‚考https://cli.vuejs.org/zh/config/#vue-config-js
// const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length - 1)
const path = require('path')
function resolve (dir) {
  return path.join(__dirname, dir)
}
module.exports = {
  publicPath: process.env.VUE_APP_CONTEXT_PATH,
  outputDir: 'admin',
@@ -17,5 +22,14 @@
        }
      }
    }
  },
  configureWebpack: {
    // provide the app's title in webpack's name field, so that
    // it can be accessed in index.html to inject the correct title.
    resolve: {
      alias: {
        '@': resolve('src')
      }
    }
  }
}