| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <template>
- <div>
- <headerTitle title="关联产品" ></headerTitle>
- <ele-pro-table ref="table" :needPage="false" :columns="columns" :datasource="datasource" class="time-form"
- :toolkit="[]">
- <!-- 表头工具栏 -->
- <template v-slot:toolbar>
- <el-button
- v-if="!isView"
- size="small"
- type="primary"
- icon="el-icon-plus"
- class="ele-btn-icon"
- @click="handParent('', -1)"
- >
- 新增
- </el-button>
- </template>
- <!-- 操作列 -->
- <template v-slot:action="scope">
- <el-popconfirm class="ele-action" title="确定要删除吗?" @confirm="remove(scope.$index)">
- <template v-slot:reference>
- <el-link v-if="!isView" type="danger" :underline="false" icon="el-icon-delete">
- 删除
- </el-link>
- </template>
- </el-popconfirm>
- </template>
- </ele-pro-table>
- <product-list
- ref="productListRef"
- classType="1"
- :is-get-inventory-total="true"
- @changeParent="changeParent"
- :data="datasource"
- ></product-list>
- </div>
- </template>
- <script>
- import productList from './product-list.vue';
- export default {
- props: {
- isView: {
- type: Boolean,
- default: false
- }
- },
- components:{
- productList
- },
- data() {
- return {
- datasource: [],
- columns: [
- {
- width: 50,
- label: '序号',
- type: 'index',
- columnKey: 'index',
- align: 'center',
- fixed: 'left'
- },
- {
- prop: 'productCategoryName',
- label: '类型',
- slot: 'productCategoryName',
- align: 'center'
- },
- {
- prop: 'productCode',
- label: '编码',
- slot: 'productCode',
- align: 'center'
- },
- {
- prop: 'productName',
- label: '名称',
- slot: 'productName',
- headerSlot: 'headerProductName',
- align: 'center',
- fixed: 'left'
- },
- {
- prop: 'specification',
- label: '规格',
- slot: 'specification',
- align: 'center'
- },
- {
- prop: 'productBrand',
- label: '牌号',
- slot: 'productBrand',
- align: 'center'
- },
- {
- prop: 'modelType',
- label: '型号',
- slot: 'modelType',
- align: 'center'
- },
- {
- columnKey: 'action',
- label: '操作',
- width: 80,
- align: 'left',
- resizable: false,
- slot: 'action',
- showOverflowTooltip: true
- }]
- }
- },
- methods:{
- //选择产品回调
- changeParent(obj, idx) {
- obj.forEach((item, index) => {
- let i = idx == -1 ? index : idx;
- let row = {};
- row.key = this.datasource.length + 1;
- let parasm = idx == -1 ? row : this.datasource[i];
- this.$set(parasm, 'productId', item.id);
- this.$set(parasm, 'productCategoryId', item.categoryLevelId);
- this.$set(parasm, 'productCategoryName', item.categoryLevelPath);
- this.$set(parasm, 'productCode', item.code);
- this.$set(parasm, 'productName', item.name);
- this.$set(parasm, 'specification', item.specification);
- this.$set(parasm, 'productBrand', item.brandNum);
- this.$set(parasm, 'modelType', item.modelType);
- if (idx == -1) {
- this.datasource.push(row);
- }
- });
- },
- //选择产品
- handParent() {
- this.$refs.productListRef.open(-1);
- },
- //删除选中产品
- remove(index) {
- this.datasource.splice(index, 1);
- this.setSort();
- },
- // 重新排序
- setSort() {
- this.datasource.forEach((n, index) => {
- n.key = index + 1;
- });
- },
- // 初始化数据
- initData() {
- this.datasource = [];
- },
- // 返回列表数据
- getTableValue() {
- let comitDatasource = this.datasource;
- if (comitDatasource.length === 0) return [];
- return comitDatasource;
- },
- //修改回显
- putTableValue(data) {
- this.datasource = data;
- }
- }
- }
- </script>
|