| | |
| | | <title><%= webpackConfig.name %></title> |
| | | </head> |
| | | <body> |
| | | <script type="text/javascript" src="<%= BASE_URL %>static/config.js"></script> |
| | | <script src="<%= BASE_URL %>static/tinymce4.7.5/tinymce.min.js"></script> |
| | | <script src="<%= BASE_URL %>static/js/jquery.min.js"></script> |
| | | <script src="<%= BASE_URL %>static/js/reconnecting-websocket.js"></script> |
| | | <script src="<%= BASE_URL %>static/js/niuniucapture.js"></script> |
| | | <script src="<%= BASE_URL %>static/js/capturewrapper.js"></script> |
| | | <script src="https://map.qq.com/api/gljs?v=1.exp&key=PGNBZ-XZ7C3-MPE34-OF2VP-7MRH6-BOFUG"></script> |
| | | <div id="app"></div> |
| | | <!-- built files will be auto injected --> |
| | |
| | | |
| | | // 请求接口地址 如果没有配置自动获取当前网址路径 |
| | | const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}`; |
| | | const VUE_APP_WS_URL = |
| | | process.env.VUE_APP_WS_URL || (location.protocol === 'https' ? 'wss' : 'ws') + ':' + location.hostname; |
| | | |
| | | const SettingIplatform = { |
| | | // 服务器地址 |
| | | // 服务器地址 |
| | | httpUrl: VUE_APP_API_URL, |
| | | // 上传路径 |
| | | ftpUrl: 'https://yqzx.jinmingyuan.com/lowConsum',//开发 |
| | | // ftpUrl:'https://jmy.jinmingyuan.com/progress',// 测试, |
| | | // 接口请求地址 |
| | | // apiBaseURL: 'http://116.198.39.83:8082/progress', // 正式 |
| | | // apiBaseURL: 'http://172.16.60.90:8082/progress',//开发 |
| | | // 接口请求地址 |
| | | apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//开发 |
| | | // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//开发 |
| | | // apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 测试, |
| | | // socket连接 |
| | | wsSocketUrl: VUE_APP_WS_URL, |
| | | debug: true //调试开关 true时会输出请求日志 |
| | | debug: false //调试开关 true时会输出请求日志 |
| | | }; |
| | | |
| | | export default SettingIplatform; |
| | |
| | | <el-input |
| | | :type="item.inputType || 'text'" |
| | | v-if="item.type === 'text'" |
| | | :placeholder="item.placeholder || ''" |
| | | :placeholder="item.placeholder || '请输入'" |
| | | @change="(e) => inputChange(e)" |
| | | :clearable="true" |
| | | v-model="val" |
| | |
| | | <el-cascader |
| | | v-model="val" |
| | | v-if="item.type === 'cascader'" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | :options="item.options" |
| | | :props="item.optionsConfig.props||{ checkStrictly: true,emitPath: false,value: 'id' }" |
| | | :show-all-levels="false" |
| | |
| | | <!-- 下拉--> |
| | | <el-select |
| | | v-if="item.type === 'select'" |
| | | :placeholder="item.placeholder || ''" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | v-model="val" |
| | | filterable |
| | | :multiple="item.multiple || false" |
| | |
| | | <!--时间--> |
| | | <el-time-select |
| | | v-if="item.type === 'time-picker'" |
| | | :placeholder="item.placeholder || ''" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | v-model="val" |
| | | :clearable="true" |
| | | style="width: 150px" |
| | |
| | | v-model="val" |
| | | type="year" |
| | | :clearable="true" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | style="width: 150px" |
| | | :value-format="item.format?item.format:'yyyy'" |
| | | @change="(v) => panelChange(v, 'yyyy')" |
| | |
| | | v-model="val" |
| | | type="month" |
| | | :clearable="true" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | style="width: 150px" |
| | | :value-format="item.format?item.format:'yyyyMM'" |
| | | @change="(v) => panelChange(v, 'yyyy-MM')" |
| | |
| | | v-model="val" |
| | | type="date" |
| | | :clearable="true" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | style="width: 150px" |
| | | :value-format="item.format?item.format:'yyyyMMdd'" |
| | | @change="(v) => panelChange(v, 'yyyy-MM-dd')" |
| | |
| | | v-model="val" |
| | | type="datetime" |
| | | :clearable="true" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | style="width: 150px" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | |
| | | v-if="item.type === 'datetimerange-picker'" |
| | | v-model="val" |
| | | style="width: 378px" |
| | | :placeholder="item.placeholder || ''" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | type="datetimerange" |
| | | :pickerOptions='pickerOptions' |
| | | :disabled="item.disabled" |
| | |
| | | |
| | | // 请求接口地址 如果没有配置自动获取当前网址路径 |
| | | const VUE_APP_API_URL = process.env.VUE_APP_BASE_API || `${location.origin}`; |
| | | const VUE_APP_WS_URL = |
| | | process.env.VUE_APP_WS_URL || (location.protocol === 'https' ? 'wss' : 'ws') + ':' + location.hostname; |
| | | |
| | | import config from '../../public/static/config.js' |
| | | const SettingIplatform = { |
| | | // 服务器地址 |
| | | httpUrl: VUE_APP_API_URL, |
| | | // 上传路径 |
| | | ftpUrl: 'https://yqzx.jinmingyuan.com/lowConsum',//开发 |
| | | // ftpUrl:'https://jmy.jinmingyuan.com/progress',// 测试, |
| | | // 接口请求地址 |
| | | // apiBaseURL: 'http://116.198.39.83:8082/progress', // 正式 |
| | | // apiBaseURL: 'http://172.16.60.90:8082/progress',//开发 |
| | | // apiBaseURL: 'http://172.16.60.175:8083/lowConsum',//开发 |
| | | apiBaseURL: 'http://172.16.20.2:8083/lowConsum',//开发 |
| | | // apiBaseURL: 'https://yqzx.jinmingyuan.com/lowConsum',//开发 |
| | | // apiBaseURL: 'https://jmy.jinmingyuan.com/progress',// 测试, |
| | | // socket连接 |
| | | wsSocketUrl: VUE_APP_WS_URL, |
| | | ftpUrl: config.ftpUrl, |
| | | // 接口请求地址 |
| | | apiBaseURL: config.apiBaseURL, |
| | | }; |
| | | |
| | | export default SettingIplatform; |
| | |
| | | function stockType(row) { |
| | | let result = ''; |
| | | let arr = ['采购入库', '调拨', '其他出库', '部门分发', '报废出库', '部门物品回退仓库', '物品盘点']; |
| | | let arr = ['采购入库', '调拨', '其他出库', '部门分发', '报废出库', '物品退回', '物品盘点']; |
| | | if (row.businessType == 7) { |
| | | if (row.thisType == 1) { |
| | | result = '盘盈入库'; |
| | |
| | | <my-button name="物品分发" @click="handleAdd" site="tools" size="medium" icon="el-icon-edit-outline" /> |
| | | <my-button name="导入" @click="importSetting.dialogShow = true" site="tools" size="medium" /> |
| | | </div> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> |
| | | <div :style="{ 'overflow-y': 'auto', height: `calc(100vh - 320px)` }" v-loading="loading"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |
| | |
| | | <div class="table-tool-bar" style="margin-bottom: 15px;"> |
| | | <my-button name="新增" @click="handleAdd" site="tools" size="medium" /> |
| | | </div> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> |
| | | <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |
| | |
| | | <div class="table-tool-bar" style="margin-bottom: 15px;"> |
| | | <my-button name="新增" @click="handleAdd" site="tools" size="medium" /> |
| | | </div> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> |
| | | <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |
| | |
| | | <div class="table-tool-bar" style="margin-bottom: 15px;"> |
| | | <my-button name="新增" @click="handleAdd" site="tools" size="medium" /> |
| | | </div> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |
| | | <div class="card-container"> |
| | | <div class="card-header"> |
| | | <div class="card-header-left"> |
| | | <span>出库单号:</span> |
| | | <span class="value">{{ item.businessFormCode }}</span> |
| | | </div> |
| | | <div class="card-header-right"> |
| | | <div> |
| | | <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |
| | | <div class="card-container"> |
| | | <div class="card-header"> |
| | | <div class="card-header-left"> |
| | | <span>出库单号:</span> |
| | | <span class="value">{{ item.businessFormCode }}</span> |
| | | </div> |
| | | <div class="card-header-right"> |
| | | <el-button site="form" type="success" size="mini" @click="handleExport(item)" |
| | | >导出出库单</el-button |
| | | >导出出库单</el-button |
| | | > |
| | | <el-button name="查看详情" site="form" type="info" size="mini" @click="handleDetail(item)" |
| | | <el-button name="查看详情" site="form" type="info" size="mini" @click="handleDetail(item)" |
| | | >查看详情</el-button |
| | | > |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="one-hed"> |
| | | <div class="box"><span class="span-two">机构:</span>{{ item.agencyName }}</div> |
| | | <div class="box"><span class="span-two">操作人:</span>{{ item.operatorName }}</div> |
| | | <div class="box"> |
| | | <span class="span-two">出库时间:</span>{{ item.dealTime | formatTime }} |
| | | <div class="one-hed"> |
| | | <div class="box"><span class="span-two">机构:</span>{{ item.agencyName }}</div> |
| | | <div class="box"><span class="span-two">操作人:</span>{{ item.operatorName }}</div> |
| | | <div class="box"> |
| | | <span class="span-two">出库时间:</span>{{ item.dealTime | formatTime }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="card-end"> |
| | | <div v-for="(just, index) in item.formOutputTemplateInfoList" :key="index" class="item"> |
| | | <div class="name">{{ just.goodsName }}</div> |
| | | <div class="value-box"> |
| | | <div class="value-box-item"> |
| | | <span class="label">数量:</span> |
| | | <span class="value">{{ just.count }}</span> |
| | | <span class="unit">{{ just.unit }}</span> |
| | | <div class="card-end"> |
| | | <div v-for="(just, index) in item.formOutputTemplateInfoList" :key="index" class="item"> |
| | | <div class="name">{{ just.goodsName }}</div> |
| | | <div class="value-box"> |
| | | <div class="value-box-item"> |
| | | <span class="label">数量:</span> |
| | | <span class="value">{{ just.count }}</span> |
| | | <span class="unit">{{ just.unit }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="no-data" v-else>暂无数据</div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="no-data" v-else>暂无数据</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-pagination |
| | | :small="false" |
| | | :current-page="pageNum" |
| | |
| | | <el-row style="margin-top: 15px"> |
| | | <el-col> |
| | | <!--列表--> |
| | | <my-table-v2 ref="myTable" :filter="filterFrom" :table="table" /> |
| | | <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/> |
| | | </el-col> |
| | | </el-row> |
| | | <!--添加/编辑弹窗--> |
| | | <detail v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" /> |
| | | <!-- <detail/>--> |
| | | <component v-if="detailSetting.show" :setting="detailSetting" @close="detailSetting.show = false" |
| | | :is="activeDetail"></component> |
| | | </el-card> |
| | | </el-container> |
| | | </el-container> |
| | |
| | | import MyTableV2 from '@/components/myTable/myTableV2'; |
| | | import MyButton from '@/components/myButton/myButton'; |
| | | import SettingIplatform from '@/utils/settingIplatform'; |
| | | import detail from '../outbound/detail'; |
| | | import * as finsystenant from '@/api/baseSetting/finsystenant'; |
| | | import myImport from '@/views/components/myImport'; |
| | | import { goodsTemplate, goodsModel } from '@/api/baseSetting/finsystenant'; |
| | | import { outputDtailList } from '@/api/stock/accessStock'; |
| | | import * as DateFormatter from '@/utils/DateFormatter'; |
| | | import stockType from '@/utils/stockType'; |
| | | import detail from '../outbound/detail'; |
| | | import purchaseDetail from '@/views/stock/procure/purchaseOrder/detail.vue';// 采购单详情 |
| | | import transferDetail from '@/views/stock/transfer/transferissue/detail.vue';// 调拨单详情 |
| | | import inventoryDetail from '@/views/stock/inventorycount/inventorytask/detail.vue';// 盘点单详情 |
| | | import scrapDetail from '@/views/stock/scrap/itemScrapping/detail.vue';// 报废单详情 |
| | | import distributionDetail from '@/views/departmentitem/itemdis/distribution/detail.vue';// 分发单详情 |
| | | import itemscrDetail from '@/views/departmentitem/itemscr/scrapping/detail.vue';// 部门报废单详情 |
| | | import returnNoteDetail from '@/views/departmentitem/itemret/returnNote/detail.vue';// 部门退还单详情 |
| | | |
| | | export default { |
| | | name: 'index', |
| | | components: { MyButton, MyTableV2, detail, myImport }, |
| | | components: { |
| | | MyButton, |
| | | MyTableV2, |
| | | detail, |
| | | myImport, |
| | | purchaseDetail, |
| | | transferDetail, |
| | | inventoryDetail, |
| | | scrapDetail, |
| | | distributionDetail, |
| | | itemscrDetail, |
| | | returnNoteDetail |
| | | }, |
| | | data() { |
| | | return { |
| | | activeDetail: '', |
| | | // 搜索框 |
| | | items: [ |
| | | { |
| | | type: 'text', |
| | | dataIndex: 'businessFormId', |
| | | dataIndex: 'businessFormCode', |
| | | label: '单号', |
| | | placeholder: '请输入', |
| | | defaultValue: '', |
| | |
| | | placeholder: '请选择', |
| | | defaultValue: '', |
| | | options: [], |
| | | cascader: [{ key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId' }], |
| | | cascader: [{key: 'baseGoodsModelsId', queryKey: 'goodsTemplatesId'}], |
| | | optionsConfig: { |
| | | label: 'goodsName', |
| | | value: 'id', |
| | |
| | | dataIndex: 'agencyId', |
| | | label: '机构', |
| | | placeholder: '请选择', |
| | | optionsConfig: { url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null }, |
| | | optionsConfig: {url: '/pc/fin/sys/tenant/select/tree_fin_tenant', props: null}, |
| | | defaultValue: '', |
| | | options: [], |
| | | }, |
| | | { |
| | | type: 'text', |
| | | dataIndex: 'createdName', |
| | | dataIndex: 'createName', |
| | | label: '创建人', |
| | | placeholder: '请输入', |
| | | defaultValue: '', |
| | | }, |
| | | { |
| | | type: 'date-picker', |
| | | dataIndex: 'dealTimeStart', |
| | | dataIndex: 'startTime', |
| | | label: '时间', |
| | | defaultValue: '', |
| | | }, |
| | | { |
| | | type: 'date-picker', |
| | | dataIndex: 'dealTimeEnd', |
| | | dataIndex: 'endTime', |
| | | label: '至', |
| | | defaultValue: '', |
| | | }, |
| | |
| | | }, |
| | | // 列信息 |
| | | columns: [ |
| | | { title: '类型', field: 'thisType', align: 'left' }, |
| | | { title: '单号', field: 'businessFormId', align: 'center' }, |
| | | { title: '物品名称', field: 'goodsTemplateName', align: 'center' }, |
| | | { title: '规格型号', field: 'baseGoodsModelsName', align: 'center' }, |
| | | { title: '出入库数量', field: 'thisCount', align: 'left' }, |
| | | { title: '金额', field: 'totalPrice', align: 'left' }, |
| | | { title: '所属机构', field: 'agencyName', align: 'left' }, |
| | | { title: '创建人', field: 'createdName', align: 'left' }, |
| | | { |
| | | title: '类型', field: 'thisType', align: 'left', |
| | | formatter: (row) => { |
| | | let result = stockType(row) |
| | | return {value: result}; |
| | | }, |
| | | }, |
| | | {title: '单号', field: 'businessFormCode', align: 'center', width: 130}, |
| | | {title: '物品名称', field: 'goodsTemplateName', align: 'left', minWidth: 130}, |
| | | {title: '规格型号', field: 'baseGoodsModelsName', align: 'left', minWidth: 130}, |
| | | {title: '出入库数量', field: 'thisCount', align: 'center', width: 100}, |
| | | {title: '金额', field: 'totalPrice', align: 'center', width: 100}, |
| | | {title: '所属机构', field: 'agencyName', align: 'left', minWidth: 130}, |
| | | {title: '创建人', field: 'operatorName', align: 'left', width: 100}, |
| | | { |
| | | title: '操作时间', |
| | | field: 'dealTime', |
| | | align: 'center', |
| | | width: 160, |
| | | formatter: (row) => { |
| | | return { value: DateFormatter.LongToDateTime(row.createTime) }; |
| | | return {value: DateFormatter.LongToDateTime(row.dealTime)}; |
| | | }, |
| | | }, |
| | | ], |
| | | // 操作信息 |
| | | operation: { |
| | | show: true, // 显示操作列 |
| | | width: '150', // 列宽 |
| | | width: 100, // 列宽 |
| | | attr: [ |
| | | { |
| | | title: '详情', |
| | |
| | | }, |
| | | }, |
| | | }, |
| | | components: { |
| | | '1': 'purchaseDetail', |
| | | '2': 'returnNoteDetail', |
| | | '3': 'transferDetail', |
| | | '4': 'inventoryDetail', |
| | | '5': 'itemscrDetail', |
| | | '6': 'transferDetail', |
| | | '7': 'inventoryDetail', |
| | | '8': 'scrapDetail', |
| | | '9': 'detail', |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | showDetail(row) { |
| | | this.activeDetail = this.components[row.mixType] |
| | | this.detailSetting.id = row.id; |
| | | this.detailSetting.info = JSON.stringify(row); |
| | | this.detailSetting.title = '详情'; |
| | |
| | | // 查询table列表 |
| | | search(pageNum) { |
| | | if (pageNum != undefined) { |
| | | this.$refs.myTable.search(pageNum); |
| | | this.$refs.myTable.search({pageNum}); |
| | | } else { |
| | | this.$refs.myTable.search(); |
| | | } |
| | |
| | | }; |
| | | // 金额校验 |
| | | var checkPrice = (rule, value, callback) => { |
| | | console.log(value); |
| | | if (!value) { |
| | | return callback(new Error('请输入')); |
| | | } |
| | |
| | | }; |
| | | // 数量校验 |
| | | var checkCounts = (rule, value, callback) => { |
| | | console.log(value); |
| | | if (!value) { |
| | | return callback(new Error('请输入')); |
| | | } |
| | |
| | | title: '上传', |
| | | max: 20, // 最大大小,单位M |
| | | num: 10, // 支持上传图片个数 |
| | | accept: '.jpg,.png', // 限制格式 |
| | | tip: '', // 提示 默认:`只能上传${this.defaultSettings.num}个${this.defaultSettings.accept}文件,且不超过${this.defaultSettings.max}kb` |
| | | uploadUrl: getUploadUrl(), // 上传路径 |
| | | multiple: true, // 是否支持批量上传 |
| | |
| | | this.$refs['ruleForm'].validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true; |
| | | console.log('formData', this.formData); |
| | | if (!this.setting.id) { |
| | | procureAdd(this.formData) |
| | | .then((res) => { |
| | |
| | | this.$emit('search'); |
| | | }) |
| | | .catch((err) => { |
| | | console.log('create err', err); |
| | | this.loading = false; |
| | | this.$message.error('保存失败'); |
| | | }); |
| | |
| | | this.$emit('search'); |
| | | }) |
| | | .catch((err) => { |
| | | console.log('edit err', err); |
| | | this.loading = false; |
| | | this.$message.error('保存失败'); |
| | | }); |
| | |
| | | <my-button name="导入" @click="importSetting.dialogShow = true" site="tools" size="medium" /> |
| | | </div> |
| | | <div v-loading="loading" style="margin-bottom: 15px"> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 360}px` }"> |
| | | <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |
| | |
| | | <div class="table-tool-bar" style="margin-bottom: 15px"> |
| | | <my-button name="新增" @click="handleAdd" site="tools" size="medium" /> |
| | | </div> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }"> |
| | | <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }"> |
| | | <el-row class="card" :gutter="5" v-loading="loading"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |
| | |
| | | <div class="table-tool-bar" style="margin-bottom: 15px"> |
| | | <my-button name="调拨申请" icon="el-icon-plus" @click="handleAdd" site="tools" size="medium" /> |
| | | </div> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> |
| | | <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |
| | |
| | | <el-row style="margin-top: 15px"> |
| | | <el-col> |
| | | <!--列表--> |
| | | <div :style="{ 'overflow-y': 'auto', height: `${clientHeight - 320}px` }" v-loading="loading"> |
| | | <div :style="{ 'overflow-y': 'auto', height: 'calc(100vh - 352px)' }" v-loading="loading"> |
| | | <el-row v-if="list.length" class="card" :gutter="5"> |
| | | <el-col v-for="(item, index) in list" :key="index" class="cm-item"> |
| | | <el-card class="card-data"> |