licp
2024-04-23 05b908bb4e6c612b5afe4a60c2f74cb7734cf3c5
完成消息列表页
已修改5个文件
已添加1个文件
229 ■■■■ 文件已修改
src/assets/api/controller.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a5-laboratory-management.vue 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/notice-detail.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/notice.vue 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/js/menu.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -20,6 +20,7 @@
    department,
    report,
    certification,
    sealScope,
    }
}
@@ -231,5 +232,8 @@
  delCertificationDetail:"certification/delCertificationDetail",//删除资质明细列表
}
const sealScope = {
  selectSeal:"/sealScope/selectSeal",//查询印章列表
  addSeal:"/sealScope/addSeal",//添加印章参数
}
src/components/view/a5-laboratory-management.vue
@@ -100,7 +100,7 @@
      <div class="btns">
        <el-button size="medium" type="primary" @click="openUpload">更新印章</el-button>
      </div>
      <ValueTable ref="ValueTable0" :url="$api.laboratoryScope.selectItemParameter"
      <ValueTable ref="ValueTable0" :url="$api.sealScope.selectSeal"
                :componentData="fileComponentData" :key="upIndex" style="height: 400px;" />
        </el-dialog>
    <el-dialog title="更新印章" :visible.sync="upFileVisible" width="400px">
@@ -108,7 +108,7 @@
        <div class="search_label" style="width:90px">印章类型:</div>
        <div class="search_input">
          <el-cascader
          v-model="dataForm.insProductIds"
          v-model="dataForm.type"
          :options="options"
          :show-all-levels="false"
          :props="props"
@@ -130,9 +130,8 @@
            :on-change="beforeUpload"
            ref="upload"
            :on-error="onError"
            :limit="1"
            >
            <img v-if="dataForm.pic1" :src="dataForm.pic1" >
            <img v-if="dataForm.address" :src="javaApi+'/img/'+dataForm.address" style="width: 110px;height: 110px;" >
            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
          </el-upload>
        </div>
@@ -200,6 +199,7 @@
                },
        fileComponentData: {
                    entity: {
            labId:null,
                        orderBy: {
                            field: 'id',
                            order: 'asc'
@@ -220,10 +220,13 @@
                upIndex: 0,
                addDia: true,
                addPower: true,
        fileVisible:true,
        fileVisible:false,
        upFileVisible:false,
        loading:false,
        dataForm:{},
        dataForm:{
          type:'',
          address:'',
        },
        props: { multiple: false,emitPath:false,},
        options:[
          {
@@ -236,7 +239,7 @@
            label:'额外类型',
            children:null
          },
        ]
        ],
            }
        },
        mounted() {
@@ -281,27 +284,46 @@
                this.$refs.ValueTable.openAddDia(this.$api.laboratoryScope.addParameter);
            },
      openUpload(){
        this.dataForm = {};
        this.dataForm.type = '';
        this.dataForm.address = '';
        this.upFileVisible = true;
      },
      fileManagement(row){
        this.$refs['ValueTable0'].selectList()
        this.fileVisible = true;
        this.fileComponentData.entity.labId = row.id;
        this.$nextTick(function () {
          this.$refs['ValueTable0'].selectList()
        })
      },
      confirmConnect(){
        if(!this.dataForm.pic1){
          this.$message.error('未上传企业印章');
        if(!this.dataForm.type){
          this.$message.error('未上选择印章类型');
          return
        }
        if(!this.dataForm.pic2){
          this.$message.error('未上传CNAS印章');
        if(!this.dataForm.address){
          this.$message.error('未上传印章');
          return
        }
        this.loading = true;
        this.$axios.post(this.$api.sealScope.addSeal, {
          labId:this.fileComponentData.entity.labId,
                    ...this.dataForm
                }, {
                    headers: {
                        'Content-Type': 'application/json'
                    }
                }).then(res => {
          this.loading = false;
                    if (res.code === 201) {
                        return
                    }
          this.$refs['ValueTable0'].selectList()
          this.upFileVisible = false;
        })
      },
      handleSuccess(response,){
        if (response.code == 200) {
          this.dataForm.pic1 = response.data
          this.dataForm.address = response.data.url
                }
      },
      beforeUpload(file,type) {
@@ -323,6 +345,7 @@
                let up = false
                let del = false
                let add = false
        let file = false
                for (var i = 0; i < power.length; i++) {
                    if (power[i].menuMethod == 'upParameter') {
                        up = true
@@ -333,6 +356,12 @@
                    if (power[i].menuMethod == 'addParameter') {
                        add = true
                    }
          if (power[i].menuMethod == 'selectSeal') {
                        file = true
                    }
                }
        if (!file) {
                    this.componentData.do.splice(2, 1)
                }
                if (!del) {
                    this.componentData.do.splice(1, 1)
src/components/view/notice-detail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
<template>
  <div class="notice-detail-page">
    <div class="notice-detail-head">
      <el-row :gutter="20">
        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;"></el-col>
      </el-row>
      <div class="head-item">
        <label>主题:</label>
        <p></p>
      </div>
      <div class="head-item">
        <label>内容:</label>
        <p></p>
      </div>
      <div class="head-item">
        <label>发件时间:</label>
        <p></p>
      </div>
      <div class="head-item">
        <label>发送人:</label>
        <p></p>
      </div>
      <div class="head-item">
        <label>收件人:</label>
        <p></p>
      </div>
    </div>
    <component class="notice-content" :is="noticeInfo.u">
        </component>
  </div>
</template>
<script>
const requireComponent = require.context("../view", false, /\.vue/);
var comObj = {};
requireComponent.keys().forEach(fileName => {
  var names = fileName
    .split("/")
    .pop()
    .replace(".vue", "");
  const componentConfig = requireComponent(fileName);
  comObj[names] = componentConfig.default || componentConfig;
});
export default {
  components: comObj,
  data() {
    return{
      noticeInfo:{
        u:'b1-inspect-order-plan'
      },
    }
  }
}
</script>
<style scoped>
.notice-detail-page{
  padding-top: 16px;
}
.notice-detail-head{
  background: #fff;
  border-radius: 3px;
  box-sizing: border-box;
  padding: 16px;
}
.notice-detail-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
}
</style>
src/main.js
@@ -13,9 +13,9 @@
//本地
Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
const javaApi = 'http://192.168.11.200:8001';//李
// const javaApi = 'http://192.168.11.200:8001';//李
// const javaApi = 'http://192.168.11.249:8001';//å¼ 
// const javaApi = 'http://192.168.11.50:8001';//姜
const javaApi = 'http://192.168.11.50:8002';//姜
// const javaApi = 'http://114.132.189.42:9006';//测试服
//胜云服务器
// Vue.prototype.LOCATIONVUE = "http://syxt.shxiao2.cn";
src/view/notice.vue
@@ -36,31 +36,13 @@
    <div class="notice-content">
      <div class="notice-content-item" v-for="(m,i) in list" :key="i">
        <div class="btns">
          <el-dropdown style="margin-right: 20px;" trigger="click">
          <el-dropdown style="margin-right: 20px;" trigger="click" @command="handleDropdown">
            <span class="el-dropdown-link">
              <span class="more" style="line-height: 26px;display: inline-block;">&middot;&middot;&middot;</span>
            </span>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item>
                æ‹’绝
              </el-dropdown-item>
              <el-dropdown-item>
                æŽ¥æ”¶
              </el-dropdown-item>
              <el-dropdown-item>
                é€šè¿‡
              </el-dropdown-item>
              <el-dropdown-item>
                ä¸é€šè¿‡
              </el-dropdown-item>
              <el-dropdown-item>
                æ‰¹å‡†
              </el-dropdown-item>
              <el-dropdown-item>
                ä¸æ‰¹å‡†
              </el-dropdown-item>
              <el-dropdown-item>
                æ›´å¤š
              <el-dropdown-item v-for="(n,j) in dropdownList" :key="j" :command="n.value">
                {{ n.label }}
              </el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
@@ -74,8 +56,8 @@
              <span class="time" style="color: #999999;font-size: 12px;">{{ m.time }}</span>
            </h4>
            <p style="color: #999999;font-size: 14px;margin-bottom: 6px;" class="ellipsis-multiline">{{ m.content }}</p>
            <el-tag type="danger" size="small" v-if="m.status==0" style="margin-bottom: 4px;">已拒绝</el-tag>
            <el-tag type="success" size="small" v-if="m.status==1" style="margin-bottom: 4px;">已接收</el-tag>
            <el-tag type="danger" size="small" v-if="m.status==0&&m.type==2" style="margin-bottom: 4px;">已拒绝</el-tag>
            <el-tag type="success" size="small" v-if="m.status==1&&m.type==2" style="margin-bottom: 4px;">已接收</el-tag>
            <p style="font-size: 12px;color: #999999;display: flex;align-items: center;justify-content: space-between;">
              <span>发送人:{{m.sendUser}}</span>
              <span>收件人:{{ m.getUser }}</span>
@@ -200,6 +182,36 @@
          sendUser:'小明',
          getUser:'李华',
        },
      ],
      dropdownList:[
        {
          label:'拒绝',
          value:0
        },
        {
          label:'接收',
          value:1
        },
        {
          label:'通过',
          value:2
        },
        {
          label:'不通过',
          value:3
        },
        {
          label:'批准',
          value:4
        },
        {
          label:'不批准',
          value:5
        },
        {
          label:'查看更多',
          value:6
        },
      ]
    }
  },
@@ -221,6 +233,25 @@
        this.options = data;
      })
    },
    goNoticeDetail(){
      this.drawer = false;
      this.$parent.addTab({
            v: "消息详情",
            i: "el-icon-s-tools",
            u: "notice-detail",
      k:35,
            p: "abcd"
        },29);
    },
    handleDropdown(e){
      switch(e){
        case 0:
          break;
        case 6:
          this.goNoticeDetail()
          break;
      }
    }
  }
}
</script>
@@ -241,8 +272,6 @@
  color: #303133;
}
>>>.el-drawer__body{
  box-sizing: border-box;
  padding: 0 16px;
  height: calc(100vh - 82px);
  overflow: hidden;
}
@@ -251,6 +280,8 @@
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  box-sizing: border-box;
  padding: 0 16px;
}
.more{
  font-size: 20px;
@@ -260,11 +291,13 @@
.notice-content{
  height: calc(100% - 60px);
  overflow-y: auto;
  box-sizing: border-box;
  padding: 0 16px;
}
.notice-content-item{
  position: relative;
  width: 100%;
  padding: 16px;
  padding: 8px;
  border-radius: 8px;
  box-sizing: border-box;
  border: 1px solid #EEEEEE;
@@ -275,6 +308,7 @@
  position: absolute;
  right: 20px;
  top: 4px;
  z-index: 4;
}
.notice-content-item .btns{
  opacity: 0;
static/js/menu.js
@@ -184,6 +184,11 @@
            i: "el-icon-s-tools",
            u: "system-log",
            p: "selectSystemLogList"
        }, {
            v: "消息详情",
            i: "el-icon-s-tools",
            u: "notice-detail",
            p: "abcd"
        }]
    },
    {