| | |
| | | <!-- tr 只加载可见的和预加载的总共十条数据 --> |
| | | <div |
| | | v-if=" |
| | | rowIndex >= parseInt(`${(scrollTop-rowHeight) / rowHeight}`) && |
| | | (parseInt(`${scrollTop / rowHeight}`) + 9) > rowIndex |
| | | maxHeight == null || |
| | | (rowIndex >= parseInt(`${(scrollTop-rowHeight) / rowHeight}`) && |
| | | (parseInt(`${scrollTop / rowHeight}`) + 9) > rowIndex) |
| | | " |
| | | :id="`${caseId}tbody-tr-${rowIndex}`" |
| | | :data-idx="rowIndex" |
| | |
| | | <a-menu-item v-if="col.allowDownload!==false" @click="handleClickDownloadFile(id)"> |
| | | <span><a-icon type="download"/> 下载</span> |
| | | </a-menu-item> |
| | | <a-menu-item v-if="col.allowRemove!==false" @click="handleClickDelFile(id)"> |
| | | <a-menu-item v-if="col.allowRemove!==false" @click="handleClickDelFile(id, row, col)"> |
| | | <span><a-icon type="delete"/> 删除</span> |
| | | </a-menu-item> |
| | | </a-menu> |
| | |
| | | <a-menu-item v-if="col.allowDownload!==false" @click="handleClickDownFileByUrl(id)"> |
| | | <span><a-icon type="download"/> 下载</span> |
| | | </a-menu-item> |
| | | <a-menu-item @click="handleClickDelFile(id)"> |
| | | <a-menu-item @click="handleClickDelFile(id, row, col)"> |
| | | <span><a-icon type="delete"/> 删除</span> |
| | | </a-menu-item> |
| | | <a-menu-item @click="handleMoreOperation(id,col,col)"> |
| | |
| | | <a-menu-item v-if="col.allowDownload!==false" @click="handleClickDownFileByUrl(id)"> |
| | | <span><a-icon type="download"/> 下载</span> |
| | | </a-menu-item> |
| | | <a-menu-item @click="handleClickDelFile(id)"> |
| | | <a-menu-item @click="handleClickDelFile(id, row, col)"> |
| | | <span><a-icon type="delete"/> 删除</span> |
| | | </a-menu-item> |
| | | <a-menu-item @click="handleMoreOperation(id,'img',col)"> |
| | |
| | | |
| | | <div v-else-if="col.type === formTypes.slot" :key="i"> |
| | | <a-tooltip v-bind="buildTooltipProps(row, col, id)"> |
| | | <!-- update:sunjianlei date:2022-1-17 for:buildProps新增参数 --> |
| | | <slot |
| | | :name="(col.slot || col.slotName) || col.key" |
| | | :index="rowIndex" |
| | |
| | | :target="getVM()" |
| | | :handleChange="(v)=>handleChangeSlotCommon(v,id,row,col)" |
| | | :isNotPass="notPassedIds.includes(col.key+row.id)" |
| | | :buildProps="()=>buildProps(row,col)" |
| | | /> |
| | | </a-tooltip> |
| | | </div> |
| | |
| | | required: false, |
| | | default: '' |
| | | }, |
| | | //删除前校验数据 |
| | | beforeDelete:{ |
| | | type: Function, |
| | | required: false, |
| | | default: ()=>{ |
| | | return Promise.resolve(true); |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | /** 删除被选中的行 */ |
| | | removeSelectedRows() { |
| | | this.removeRows(this.selectedRowIds) |
| | | this.selectedRowIds = [] |
| | | //update-begin-author:taoyan date:2022-8-5 for: VUEN-1767【bug】vue2 未控制住 |
| | | this.beforeDelete().then(()=>{ |
| | | this.removeRows(this.selectedRowIds) |
| | | this.selectedRowIds = [] |
| | | }).catch(e=>{ |
| | | this.$message.error(e); |
| | | }); |
| | | //update-end-author:taoyan date:2022-8-5 for: VUEN-1767【bug】vue2 未控制住 |
| | | }, |
| | | /** 删除一行或多行 */ |
| | | removeRows(id) { |
| | |
| | | } |
| | | } |
| | | if (edited) { |
| | | this.elemValueChange(column.type, {[newValueKey]: newValue}, column, newValue) |
| | | // update-begin-author:sunjianlei date:20211222 for: 修复 setValues 触发的 valueChange 事件没有id的问题 |
| | | this.elemValueChange(column.type, {id: rowKey}, column, newValue) |
| | | // update-end-author:sunjianlei date:20211222 for: 修复 setValues 触发的 valueChange 事件没有id的问题 |
| | | } |
| | | } |
| | | } |
| | |
| | | }) |
| | | // 强制更新formValues |
| | | this.forceUpdateFormValues() |
| | | // 【issues/3828】重新计算统计列 |
| | | this.recalcAllStatisticsColumns() |
| | | }, |
| | | /** |
| | | * 设置单个组件的值 |
| | |
| | | { title: '网址', value: 'url', pattern: /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/ }, |
| | | { title: '电子邮件', value: 'e', pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/ }, |
| | | { title: '手机号码', value: 'm', pattern: /^1[3456789]\d{9}$/ }, |
| | | { title: '邮政编码', value: 'p', pattern: /^[1-9]\d{5}$/ }, |
| | | { title: '邮政编码', value: 'p', pattern: /^[0-9]{6}$/ }, |
| | | { title: '字母', value: 's', pattern: /^[A-Z|a-z]+$/ }, |
| | | { title: '数字', value: 'n', pattern: /^-?\d+(\.?\d+|\d?)$/ }, |
| | | { title: '整数', value: 'z', pattern: /^-?\d+$/ }, |
| | |
| | | return id; |
| | | }, |
| | | |
| | | handleClickDelFile(id) { |
| | | handleClickDelFile(id, row, col) { |
| | | this.uploadValues[id] = null |
| | | this.elemValueChange(col.type, row, col, null); |
| | | }, |
| | | handleClickDownloadFile(id) { |
| | | let { path } = this.uploadValues[id] || {} |
| | |
| | | return false |
| | | } |
| | | return true; |
| | | } |
| | | }, |
| | | // 根据id获取dataSource中的一行数据 |
| | | getOriginData(id){ |
| | | return this.dataSource.filter(item=>item.id == id); |
| | | }, |
| | | |
| | | }, |
| | | beforeDestroy() { |