| | |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | .el-upload { |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | .el-upload:hover { |
| | | border-color: #409EFF; |
| | | } |
| | | .avatar-uploader-icon { |
| | | border: 1px dashed #d9d9d9; |
| | | font-size: 28px; |
| | | color: #8c939d; |
| | | width: 120px; |
| | | height: 120px; |
| | | line-height: 120px; |
| | | text-align: center; |
| | | } |
| | | .avatar { |
| | | width: 120px; |
| | | height: 120px; |
| | | display: block; |
| | | } |
| | | .btns{ |
| | | position: absolute; |
| | | right: 80px; |
| | | top: 13px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | |
| | | :upUrl="$api.laboratoryScope.upParameter" :delUrl="$api.laboratoryScope.delParameter" |
| | | :componentData="componentData" :key="upIndex" /> |
| | | </div> |
| | | <el-dialog title="å°ç« 管ç" :visible.sync="fileVisible" width="60vw"> |
| | | <div class="btns"> |
| | | <el-button size="medium" type="primary" @click="openUpload">æ´æ°å°ç« </el-button> |
| | | </div> |
| | | <ValueTable ref="ValueTable0" :url="$api.laboratoryScope.selectItemParameter" |
| | | :componentData="fileComponentData" :key="upIndex" style="height: 400px;" /> |
| | | </el-dialog> |
| | | <el-dialog title="æ´æ°å°ç« " :visible.sync="upFileVisible" width="400px"> |
| | | <div class="search_thing" style="margin-bottom: 16px;"> |
| | | <div class="search_label" style="width:90px">å°ç« ç±»åï¼</div> |
| | | <div class="search_input"> |
| | | <el-cascader |
| | | v-model="dataForm.insProductIds" |
| | | :options="options" |
| | | :show-all-levels="false" |
| | | :props="props" |
| | | placeholder="è¯·éæ©" size="small" |
| | | style="width:100%" |
| | | collapse-tags |
| | | clearable></el-cascader> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label" style="width:90px">å°ç« å¾çï¼</div> |
| | | <div class="search_input"> |
| | | <el-upload |
| | | :action="action" |
| | | :headers="headers" |
| | | accept='image/jpg,image/jpeg,image/png' |
| | | :show-file-list="false" |
| | | :on-success="handleSuccess" |
| | | :on-change="beforeUpload" |
| | | ref="upload" |
| | | :on-error="onError" |
| | | :limit="1" |
| | | > |
| | | <img v-if="dataForm.pic1" :src="dataForm.pic1" > |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"></i> |
| | | </el-upload> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="upFileVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="confirmConnect" :loading="loading">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | export default { |
| | | components: { |
| | | ValueTable |
| | | }, |
| | | computed: { |
| | | headers() { |
| | | return { |
| | | 'token': sessionStorage.getItem('token') |
| | | } |
| | | }, |
| | | action() { |
| | | return this.javaApi + this.$api.deviceScope.uploadFile |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | font: 'å é¤', |
| | | type: 'text', |
| | | method: 'doDiy' |
| | | }, { |
| | | id: '', |
| | | font: 'å°ç« 管ç', |
| | | type: 'text', |
| | | method: 'fileManagement' |
| | | }], |
| | | tagField: {}, |
| | | selectField: {}, |
| | | requiredAdd: ['laboratoryName', 'laboratoryNumber', 'head', 'phoneNumber'], |
| | | requiredUp: ['laboratoryName', 'laboratoryNumber', 'head', 'phoneNumber'] |
| | | }, |
| | | fileComponentData: { |
| | | entity: { |
| | | orderBy: { |
| | | field: 'id', |
| | | order: 'asc' |
| | | } |
| | | }, |
| | | isPage:false, |
| | | init:false, |
| | | isIndex: true, |
| | | showSelect: false, |
| | | select: false, |
| | | do: [], |
| | | tagField: {}, |
| | | selectField: {}, |
| | | requiredAdd: [], |
| | | requiredUp: [] |
| | | }, |
| | | entityCopy: {}, |
| | | upIndex: 0, |
| | | addDia: true, |
| | | addPower: true |
| | | addPower: true, |
| | | fileVisible:true, |
| | | upFileVisible:false, |
| | | loading:false, |
| | | dataForm:{}, |
| | | props: { multiple: false,emitPath:false,}, |
| | | options:[ |
| | | { |
| | | value:0, |
| | | label:'å®éªå®¤èµè´¨', |
| | | children:[] |
| | | }, |
| | | { |
| | | value:1, |
| | | label:'é¢å¤ç±»å', |
| | | children:null |
| | | }, |
| | | ] |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.entityCopy = this.HaveJson(this.componentData.entity) |
| | | this.getPower() |
| | | this.getCertificationDetail() |
| | | }, |
| | | methods: { |
| | | refreshTable() { |
| | | this.$refs['ValueTable'].selectList() |
| | | }, |
| | | getCertificationDetail(){ |
| | | this.$axios.post(this.$api.certification.getCertificationDetail, { |
| | | page: { |
| | | current: -1, |
| | | size: -1, |
| | | }, |
| | | entity: { |
| | | name: null, |
| | | } |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | if (res.code === 201) { |
| | | return |
| | | } |
| | | let arr = res.data.body.records.map(m=>{ |
| | | m.value = m.id; |
| | | m.label = m.name; |
| | | return m |
| | | }) |
| | | this.options[0].children = arr; |
| | | }) |
| | | }, |
| | | refresh() { |
| | | this.componentData.entity = this.HaveJson(this.entityCopy) |
| | | this.upIndex++ |
| | |
| | | openAdd() { |
| | | this.$refs.ValueTable.openAddDia(this.$api.laboratoryScope.addParameter); |
| | | }, |
| | | openUpload(){ |
| | | this.dataForm = {}; |
| | | this.upFileVisible = true; |
| | | }, |
| | | fileManagement(row){ |
| | | this.$refs['ValueTable0'].selectList() |
| | | this.fileVisible = true; |
| | | }, |
| | | confirmConnect(){ |
| | | if(!this.dataForm.pic1){ |
| | | this.$message.error('æªä¸ä¼ ä¼ä¸å°ç« '); |
| | | return |
| | | } |
| | | if(!this.dataForm.pic2){ |
| | | this.$message.error('æªä¸ä¼ CNASå°ç« '); |
| | | return |
| | | } |
| | | this.loading = true; |
| | | }, |
| | | handleSuccess(response,){ |
| | | if (response.code == 200) { |
| | | this.dataForm.pic1 = response.data |
| | | } |
| | | }, |
| | | beforeUpload(file,type) { |
| | | if (file.size > 1024 * 1024 * 10) { |
| | | this.$message.error('ä¸ä¼ æä»¶ä¸è¶
è¿10M'); |
| | | this.$refs.upload.clearFiles() |
| | | return false; |
| | | } else { |
| | | return true; |
| | | } |
| | | }, |
| | | onError(err, file, fileList,type) { |
| | | this.$message.error('ä¸ä¼ 失败') |
| | | this.$refs.upload.clearFiles() |
| | | }, |
| | | // æéåé
|
| | | getPower(radio) { |
| | | let power = JSON.parse(sessionStorage.getItem('power')) |
| | |
| | | n.value = n.id; |
| | | return n |
| | | }) |
| | | console.log(123,children) |
| | | this.componentData.tagField.insProductIds.select = [...this.componentData.tagField.insProductIds.select,...children] |
| | | this.componentData.selectField.insProductIds.select = [...this.componentData.selectField.insProductIds.select,...children] |
| | | return m |
| | |
| | | :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" |
| | | @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false" |
| | | :default-expanded-keys="expandedKeys" |
| | | style="max-height: 500px;overflow-y: scroll;scrollbar-width: none;"> |
| | | style="height:calc(100% - 30px);overflow-y: scroll;scrollbar-width: none;"> |
| | | <div class="custom-tree-node" slot-scope="{ node, data }"> |
| | | <el-row style="width: 100%;"> |
| | | <el-col :span="21" :class="{sort:node.level>3}"> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <style scoped> |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_thing { |
| | | width: 350px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 110px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 110px); |
| | | } |
| | | |
| | | .table { |
| | | margin-top: 10px; |
| | | background-color: #fff; |
| | | width: calc(100% - 40px); |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | >>>.cell{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .page { |
| | | width: 100%; |
| | | height: 30px; |
| | | text-align: right; |
| | | margin-bottom: 10px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="role_manage"> |
| | | <div> |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="padding-left: 20px;">æ ·åç¼ºé·ææ°</el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">æ£éªé¡¹ç®ï¼</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请è¾å
¥" clearable |
| | | v-model="entity.laboratoryName" @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">å§æç¼å·ï¼</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请è¾å
¥" clearable |
| | | v-model="entity.laboratoryNumber" @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-button size="small" @click="refresh()">é ç½®</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">æ¥ è¯¢</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%;margin-bottom: 10px;height: calc(100% - 40px);" |
| | | row-key="id" |
| | | v-loading="loading" |
| | | border |
| | | default-expand-all |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| | | <el-table-column |
| | | prop="date" |
| | | label="æ£éªé¡¹ç®" |
| | | sortable |
| | | min-width="180"> |
| | | <template slot-scope="scope"> |
| | | <p> |
| | | <el-tag style="margin-right: 10px;height: 24px;border-radius: 10px;line-height: 24px;border: 0;" :type="scope.row.level==2?'success':''">{{ '0' + scope.row.level }}</el-tag> |
| | | <span>{{ scope.row.date }}</span> |
| | | </p> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | label="å§æç¼å·" |
| | | sortable |
| | | min-width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="æ£éªäºº" |
| | | min-width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="æ£éªæ¶é´" |
| | | min-width="180"> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="page"> |
| | | <el-pagination @size-change="sizeChange" @current-change="currentChange" :current-page="page.current" |
| | | :page-sizes="[10, 20, 30, 50, 100]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total" > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | entity: {}, |
| | | tableData: [{ |
| | | id: 3, |
| | | date: '2016-05-01', |
| | | name: 'çå°è', |
| | | address: '䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼', |
| | | level:1, |
| | | children: [{ |
| | | id: 31, |
| | | date: '2016-05-01', |
| | | name: 'çå°è', |
| | | address: '䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼', |
| | | level:2, |
| | | }, { |
| | | id: 32, |
| | | date: '2016-05-01', |
| | | name: 'çå°è', |
| | | address: '䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼', |
| | | level:2, |
| | | }] |
| | | }], |
| | | page:{ |
| | | current:1, |
| | | size:20, |
| | | }, |
| | | total:0, |
| | | loading:false, |
| | | } |
| | | }, |
| | | mounted() { |
| | | |
| | | this.getPower() |
| | | }, |
| | | methods: { |
| | | refreshTable(){ |
| | | this.loading = true |
| | | }, |
| | | refresh(){ |
| | | this.page.size = 20; |
| | | this.page.current = 1; |
| | | this.refreshTable(); |
| | | }, |
| | | sizeChange(val){ |
| | | this.page.size = val |
| | | this.refreshTable() |
| | | }, |
| | | currentChange(val){ |
| | | this.page.current = val |
| | | this.refreshTable() |
| | | }, |
| | | // æéåé
|
| | | getPower(radio) { |
| | | let power = JSON.parse(sessionStorage.getItem('power')); |
| | | let up = false |
| | | let del = false |
| | | let add = false |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == 'upParameter') { |
| | | up = true |
| | | } |
| | | if (power[i].menuMethod == 'delParameter') { |
| | | del = true |
| | | } |
| | | if (power[i].menuMethod == 'addParameter') { |
| | | add = true |
| | | } |
| | | } |
| | | if (!del) { |
| | | this.componentData.do.splice(1, 1) |
| | | } |
| | | if (!up) { |
| | | this.componentData.do.splice(0, 1) |
| | | } |
| | | this.addPower = add |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | } |
| | | .left-2-item{ |
| | | border-right: 1px solid #F1F1F1; |
| | | overflow: hidden !important; |
| | | } |
| | | .left-2-item:nth-last-child(1){ |
| | | border-right: 0; |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="left-2 card" v-loading="workLoading"> |
| | | <div class="left-2 card" v-loading="workLoading" style="overflow: hidden;"> |
| | | <div class="left-2-item" v-for="(item,index) in workDay" :key="index"> |
| | | <div class="left-item-title"> |
| | | <span style="font-size: 18px;">{{ item }}</span> |
| | |
| | | </div> |
| | | <div class="label">LIMSå®éªå®¤ç®¡çç³»ç»</div> |
| | | <div class="user"> |
| | | <el-badge is-dot style="cursor: pointer;margin-right: 10px;"> |
| | | <i class="el-icon-bell" style="font-size: 20px;" @click="openNotice"></i> |
| | | </el-badge> |
| | | <el-dropdown trigger="click" @command="handleCommand"> |
| | | <el-avatar :size="26">{{ userName.substring(0, 1) }}</el-avatar> |
| | | <span>{{ userName }}</span> |
| | |
| | | </el-card> |
| | | </el-col> |
| | | </div> |
| | | <!-- ä¿®æ¹å¯ç --> |
| | | <el-dialog |
| | | title="ä¿®æ¹å¯ç " |
| | | :visible.sync="editVisible" |
| | |
| | | <el-button type="primary" @click="handleEdit">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <notice ref="notice" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }); |
| | | import menus from '../../static/js/menu.js' |
| | | import nullFace from '../view/404.vue' |
| | | import notice from './notice.vue' |
| | | comObj['nullFace'] = nullFace |
| | | export default { |
| | | components: comObj, |
| | | components: {...comObj,notice}, |
| | | data() { |
| | | return { |
| | | userName: "value", |
| | |
| | | handleClose(){ |
| | | this.editVisible = false |
| | | this.query = {} |
| | | }, |
| | | openNotice(){ |
| | | this.$refs.notice.open() |
| | | } |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="notice-page"> |
| | | <el-drawer |
| | | title="æ¶æ¯éç¥" |
| | | :visible.sync="drawer" |
| | | :direction="direction" |
| | | :before-close="handleClose" style="height: 100vh;"> |
| | | <div class="head"> |
| | | <div class="head-search"> |
| | | <label>æ¶æ¯ç±»åï¼</label> |
| | | <el-select v-model="type" placeholder="è¯·éæ©" style="width: 150px;" size="small"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <el-dropdown style="margin-right: 20px;"> |
| | | <span class="el-dropdown-link"> |
| | | <span class="more">···</span> |
| | | </span> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item> |
| | | <i class="el-icon-check"></i> |
| | | <span>æ è®°æææ¶æ¯ä¸ºå·²è¯»</span> |
| | | </el-dropdown-item> |
| | | <el-dropdown-item> |
| | | <i class="el-icon-delete"></i> |
| | | <span>å 餿æå·²è¯»æ¶æ¯</span> |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </div> |
| | | <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"> |
| | | <span class="el-dropdown-link"> |
| | | <span class="more" style="line-height: 26px;display: inline-block;">···</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> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | <i class="el-icon-close" style="cursor: pointer;"></i> |
| | | </div> |
| | | <div class="content"> |
| | | <img :src="`../../static/img/notice-${m.type}.svg`" alt="" style="width: 50px;margin-right: 18px;"> |
| | | <div class="content-info"> |
| | | <h4 style="font-weight: normal;margin-bottom: 6px;display: flex;align-items: center;justify-content: space-between;"> |
| | | <span>{{ m.title }}</span> |
| | | <span class="time" style="color: #999999;font-size: 14px;">{{ m.time }}</span> |
| | | </h4> |
| | | <p style="color: #999999;font-size: 14px;margin-bottom: 8px;" class="ellipsis-multiline">{{ m.content }}</p> |
| | | <el-tag type="danger" v-if="m.status==0">å·²æç»</el-tag> |
| | | <el-tag type="success" v-if="m.status==1">å·²æ¥æ¶</el-tag> |
| | | <p style="font-size: 14px;color: #999999;display: flex;align-items: center;justify-content: space-between;"> |
| | | <span>åé人ï¼{{m.sendUser}}</span> |
| | | <span>æ¶ä»¶äººï¼{{ m.getUser }}</span> |
| | | </p> |
| | | </div> |
| | | </div> |
| | | <div class="new-notice" v-if="m.isRead==0"> |
| | | <span>new</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-drawer> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data(){ |
| | | return{ |
| | | drawer:true, |
| | | direction:'rtl', |
| | | options:[], |
| | | type:'0', |
| | | list:[ |
| | | { |
| | | type:1, |
| | | title:'æ é¢', |
| | | content:'å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:0,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:2, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:1,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:3, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:0,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:4, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:0,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:5, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:0,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:6, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:1,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:6, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:1,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:6, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:1,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:6, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:1,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | { |
| | | type:6, |
| | | title:'æ é¢', |
| | | content:'å
容', |
| | | time:'2019-08-07 15:34:26', |
| | | status:1,//æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ |
| | | isRead:1,//æ¯å¦å·²è¯» |
| | | sendUser:'å°æ', |
| | | getUser:'æå', |
| | | }, |
| | | ] |
| | | } |
| | | }, |
| | | mounted(){ |
| | | this.getTypeDicts(); |
| | | }, |
| | | methods:{ |
| | | open(){ |
| | | this.drawer = true; |
| | | }, |
| | | handleClose(){ |
| | | this.drawer = false; |
| | | }, |
| | | getTypeDicts() { |
| | | this.$axios.post(this.$api.enums.selectEnumByCategory, { |
| | | category: "æ¶æ¯ç±»å" |
| | | }).then(res => { |
| | | let data = res.data |
| | | this.options = data; |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | >>>.el-drawer__header::before { |
| | | content: ""; |
| | | display: inline-block; |
| | | width: 4px; |
| | | height: 30.24px; |
| | | background: #3A7BFA; |
| | | border-radius: 10px; |
| | | margin-left: 32px; |
| | | margin-right: 8.5px; |
| | | } |
| | | |
| | | >>>.el-drawer__header { |
| | | color: #303133; |
| | | } |
| | | >>>.el-drawer__body{ |
| | | box-sizing: border-box; |
| | | padding: 0 16px; |
| | | height: calc(100vh - 82px); |
| | | overflow: hidden; |
| | | } |
| | | .head{ |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-bottom: 16px; |
| | | } |
| | | .more{ |
| | | font-size: 20px; |
| | | color: grey !important; |
| | | cursor: pointer; |
| | | } |
| | | .notice-content{ |
| | | height: calc(100% - 60px); |
| | | overflow-y: auto; |
| | | } |
| | | .notice-content-item{ |
| | | position: relative; |
| | | width: 100%; |
| | | padding: 16px; |
| | | border-radius: 8px; |
| | | box-sizing: border-box; |
| | | border: 1px solid #EEEEEE; |
| | | margin-bottom: 10px; |
| | | overflow: hidden; |
| | | } |
| | | .btns{ |
| | | position: absolute; |
| | | right: 20px; |
| | | top: 4px; |
| | | } |
| | | .notice-content-item .btns{ |
| | | opacity: 0; |
| | | } |
| | | .time{ |
| | | opacity: 1; |
| | | } |
| | | .notice-content-item:hover{ |
| | | box-shadow: 4px 4px 8px 0px rgba(51,51,51,0.04); |
| | | } |
| | | .notice-content-item:hover .btns{ |
| | | opacity: 1; |
| | | } |
| | | .notice-content-item:hover .time{ |
| | | opacity: 0; |
| | | } |
| | | .content{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .content-info{ |
| | | flex: 1; |
| | | } |
| | | .new-notice{ |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | width: 0; |
| | | height: 0; |
| | | border-top: 14px solid red; |
| | | border-right: 14px solid transparent; |
| | | border-bottom: 14px solid transparent; |
| | | border-left: 14px solid red; |
| | | } |
| | | .new-notice span{ |
| | | position: absolute; |
| | | font-size: 12px; |
| | | top: -13px; |
| | | left: -17px; |
| | | color: #fff; |
| | | transform: rotate(-45deg) scale(0.8); |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713774541141" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2168" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M533.333333 533.333333h117.333334a32 32 0 1 1 0 64h-149.333334a31.914667 31.914667 0 0 1-32-32v-192a32 32 0 1 1 64 0v160zM85.333333 0h853.333334a85.333333 85.333333 0 0 1 85.333333 85.333333v853.333334a85.333333 85.333333 0 0 1-85.333333 85.333333H85.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V85.333333a85.333333 85.333333 0 0 1 85.333333-85.333333z m426.666667 810.666667a298.666667 298.666667 0 1 0 0-597.333334 298.666667 298.666667 0 0 0 0 597.333334z" fill="#F57818" p-id="2169"></path></svg> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713774580175" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2343" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M85.333333 0h853.333334a85.333333 85.333333 0 0 1 85.333333 85.333333v853.333334a85.333333 85.333333 0 0 1-85.333333 85.333333H85.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V85.333333a85.333333 85.333333 0 0 1 85.333333-85.333333z m426.666667 213.333333c-68.778667-0.682667-278.144 112.426667-277.333333 149.248 3.242667 296.96 225.322667 447.744 277.333333 448.085334 52.010667 0.341333 278.613333-148.565333 277.333333-448-0.256-37.418667-208.554667-148.650667-277.333333-149.333334z m164.394667 196.010667c12.032 12.458667 12.032 32.981333-0.725334 44.672l-155.264 160.426667a30.506667 30.506667 0 0 1-22.656 9.557333 32.085333 32.085333 0 0 1-23.381333-9.514667l-91.477333-93.781333c-12.757333-13.226667-12.757333-33.706667 0-46.890667 12.8-13.226667 33.322667-13.226667 46.08 0l70.186666 72.533334 132.565334-137.002667a31.36 31.36 0 0 1 44.672 0z" fill="#15B4D4" p-id="2344"></path></svg> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713774491978" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1483" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M554.666667 554.666667v-92.586667a128.042667 128.042667 0 1 0-85.333334 0V554.666667H267.946667a42.666667 42.666667 0 0 0-41.386667 53.034666l21.333333 85.333334a42.666667 42.666667 0 0 0 41.386667 32.298666h445.44a42.666667 42.666667 0 0 0 41.386667-32.298666l21.333333-85.333334A42.666667 42.666667 0 0 0 756.053333 554.666667H554.666667zM85.333333 0h853.333334a85.333333 85.333333 0 0 1 85.333333 85.333333v853.333334a85.333333 85.333333 0 0 1-85.333333 85.333333H85.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V85.333333a85.333333 85.333333 0 0 1 85.333333-85.333333z m234.666667 768a21.333333 21.333333 0 1 0 0 42.666667h384a21.333333 21.333333 0 1 0 0-42.666667h-384z" fill="#FAAB0C" p-id="1484"></path></svg> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713774535390" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1993" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M85.333333 0h853.333334a85.333333 85.333333 0 0 1 85.333333 85.333333v853.333334a85.333333 85.333333 0 0 1-85.333333 85.333333H85.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V85.333333a85.333333 85.333333 0 0 1 85.333333-85.333333z m426.666667 810.666667a298.666667 298.666667 0 1 0 0-597.333334 298.666667 298.666667 0 0 0 0 597.333334z m-170.666667-256a42.666667 42.666667 0 1 1 0-85.333334 42.666667 42.666667 0 0 1 0 85.333334z m170.666667 0a42.666667 42.666667 0 1 1 0-85.333334 42.666667 42.666667 0 0 1 0 85.333334z m170.666667 0a42.666667 42.666667 0 1 1 0-85.333334 42.666667 42.666667 0 0 1 0 85.333334z" fill="#B162D9" p-id="1994"></path></svg> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713774524927" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1786" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M85.333333 0h853.333334a85.333333 85.333333 0 0 1 85.333333 85.333333v853.333334a85.333333 85.333333 0 0 1-85.333333 85.333333H85.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V85.333333a85.333333 85.333333 0 0 1 85.333333-85.333333z m496.426667 257.792c-31.317333-59.306667-108.202667-59.306667-139.52 0L224.469333 672.853333C193.152 733.738667 231.594667 810.666667 294.229333 810.666667h435.541334c62.634667 0 101.12-76.928 69.76-137.813334l-217.770667-415.061333zM512 725.333333a42.666667 42.666667 0 1 1 0-85.333333 42.666667 42.666667 0 0 1 0 85.333333z m-0.938667-341.333333a40.874667 40.874667 0 0 1 40.746667 44.16l-11.562667 143.530667c-1.194667 14.506667-13.269333 25.642667-27.818666 25.642666a28.245333 28.245333 0 0 1-28.074667-25.6l-13.44-143.616A40.362667 40.362667 0 0 1 511.061333 384z" fill="#EA493D" p-id="1787"></path></svg> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713774611710" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3358" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M85.333333 0h853.333334a85.333333 85.333333 0 0 1 85.333333 85.333333v853.333334a85.333333 85.333333 0 0 1-85.333333 85.333333H85.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V85.333333a85.333333 85.333333 0 0 1 85.333333-85.333333z m227.541334 213.333333C257.92 213.333333 213.333333 249.002667 213.333333 292.992v438.016C213.333333 774.997333 257.92 810.666667 312.874667 810.666667h398.250666C766.08 810.666667 810.666667 774.997333 810.666667 731.008V292.992C810.666667 249.002667 766.08 213.333333 711.125333 213.333333H312.874667z m149.333333 85.333334a64 64 0 1 1 0 128 64 64 0 0 1 0-128z m-128 220.842666h355.584c19.626667 0 35.541333 14.336 35.541333 32 0 17.706667-15.914667 32-35.541333 32H334.208c-19.626667 0-35.541333-14.293333-35.541333-32 0-17.664 15.914667-32 35.541333-32z m0 130.56H512c19.626667 0 35.541333 14.293333 35.541333 32 0 17.664-15.914667 32-35.541333 32H334.208c-19.626667 0-35.541333-14.336-35.541333-32 0-17.706667 15.914667-32 35.541333-32z" fill="#F57818" p-id="3359"></path></svg> |
| | |
| | | v: "æ¯æ¥ä¸å¡ç»è®¡", |
| | | i: "font icon-erjidaohang", |
| | | u: "b4-daily-business-statistics", |
| | | p: "" |
| | | p: "businessStatisticsByDay" |
| | | }, { |
| | | v: "æ£æµé¡¹ç®ç»è®¡", |
| | | i: "font icon-erjidaohang", |
| | | u: "b4-inspection-item-statistics", |
| | | p: "" |
| | | p: "testProductByDay" |
| | | }, { |
| | | v: "æ ·åç¼ºé·ææ°", |
| | | i: "font icon-erjidaohang", |
| | | u: "", |
| | | u: "b4-sample-defects", |
| | | p: "" |
| | | }, { |
| | | v: "èæç»è®¡", |
| | |
| | | i: "font icon-erjidaohang", |
| | | u: "a5-laboratory-qualifications", |
| | | g: "Cè½åèå´åèµè´¨", |
| | | p: "" |
| | | p: "getCertificationDetail" |
| | | }, { |
| | | v: "è½åèå´", |
| | | i: "font icon-erjidaohang", |
| | |
| | | i: "font icon-erjidaohang", |
| | | u: "a6-personnel-overview", |
| | | g: "6.2 人å", |
| | | p: "" |
| | | p: "selectUserList" |
| | | }, { |
| | | v: "人åæç»", |
| | | i: "font icon-erjidaohang", |
| | | u: "a6-personnel-detail", |
| | | g: "6.2 人å", |
| | | p: "" |
| | | p: "selectUserList" |
| | | }, { |
| | | v: "人åå¹è®", |
| | | i: "font icon-erjidaohang", |