<template>

  <a-card :bordered="false">
    <p style="font-size: 30px;color:#333;padding-left: 40%">{{biaoTi}}</p>
    <!-- 查询区域 -->
<!--    <div class="table-page-search-wrapper">-->
<!--      <a-form layout="inline" @keyup.enter.native="searchQuery">-->
<!--        <a-row :gutter="24">-->
<!--          <a-col>-->
            <!--            <a-button type="primary">{{biaoTi}}</a-button>-->
<!--          </a-col>-->
<!--        </a-row>-->
<!--      </a-form>-->
<!--    </div>-->
    <!-- 查询区域-END -->

<!--    <a-button type="primary" icon="rollback" @click="fanHui()">返回</a-button>-->
    <!-- table区域-begin -->
    <div >
      <j-vxe-table
        toolbar
        :toolbarConfig="toolbarConfig"
        row-number
        row-selection
        keep-source
        async-remove

        :height="340"
        :loading="loading"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="pagination"
        style="margin-top: 8px;"
        @pageChange="handlePageChange"
        @valueChange="handleValueChange"
        @added="added"
      >
        <template v-slot:toolbarSuffix>
          <a-button type="primary" icon="rollback" @click="fanHui()">返回</a-button>
<!--          <a-tooltip placement="top" title="获取值，忽略表单验证" :autoAdjustOverflow="true">-->
<!--            <a-button @click="handleTableGet">获取值</a-button>-->
<!--          </a-tooltip>-->
<!--          <a-tooltip placement="top" title="模拟加载1000条数据" :autoAdjustOverflow="true">-->
<!--            <a-button @click="handleTableSet">设置值</a-button>-->
<!--          </a-tooltip>-->
        </template>

        <template v-slot:action="props">
<!--          <a @click="submitForm(props)">保存</a>-->
<!--          <a-divider type="vertical"/>-->
          <a @click="viewDetail(props.rowId)">详情</a>
          <a-divider type="vertical" />
          <a-popconfirm title="确定删除吗？" @confirm="handleDelete(props.rowId)">
            <a>删除</a>
          </a-popconfirm>
        </template>
      </j-vxe-table>
    </div>

    <zy-style-model-modal ref="modalForm" @ok="modalFormOk"></zy-style-model-modal>
    <ZyStyleModelListDetails ref="ZyStyleModelListDetails"></ZyStyleModelListDetails>
  </a-card>
</template>

<script>

import '@/assets/less/TableExpand.less'
import {JVXETypes} from '@/components/jeecg/JVxeTable'
import {mixinDevice} from '@/utils/mixin'
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import ZyStyleModelModal from './modules/ZyStyleModelModal'
import {deleteAction, getAction, postAction, putAction, postFormAction, httpAction} from "@api/manage";
import store from "@/store";
import {filterObj, validateDuplicateValue} from '@/utils/util'
import ZyStyleModelListDetails from "@views/zystylemodel/modules/ZyStyleModelListDetails";

export default {
  name: 'ZyStyleModelList',
  mixins: [JeecgListMixin, mixinDevice],
  components: {
    ZyStyleModelListDetails,
    ZyStyleModelModal
  },
  data() {
    return {
      description: 'zy_style_model管理页面',
      biaoTi: '',
      // 表头
      // 工具栏的按钮配置
      toolbarConfig: {
        // add 新增按钮；remove 删除按钮；clearSelection 清空选择按钮
        btn: ['add'],
      },
      validatorRules: {
        // styleId: [
        //   {required: true, message: '请选择服装类型!'},
        // ],
      },
      // 是否正在加载
      loading: false,
      // 分页器参数
      pagination: {
        // 当前页码
        current: 1,
        // 每页的条数
        pageSize: 10,
        // 可切换的条数
        pageSizeOptions: ['10', '20', '30', '100', '200'],
        // 数据总数（目前并不知道真实的总数，所以先填写0，在后台查出来后再赋值）
        total: 0,
        showQuickJumper: true,
        showSizeChanger: true,
        id: null
      },

      // 数据源，控制表格的数据

      columns: [
        {
          title: '服装款式',
          width: '150px',
          fixed: 'left',
          key: 'styleId',
          type: JVXETypes.select,
          placeholder: '请输入${title}',
          //dictCode: 'zy_cloths_style,style_names,id',
          validateRules: [
            {required: true, message: '${title}不能为空'},
          ],
          disabled: true,
        },
        {
          title: '是否默认尺码',
          align: "center",
          width: '50px',
          key: 'isdefault',
          type: JVXETypes.select,
          dictCode: 'isdefault',
          defaultValue: 0,
        },
        {key: 'modelNumber', title: '型号编码', dictCode: 'modenumber', width: '120px', type: JVXETypes.select},
        {key: 'size', title: '码数', width: '90px', dictCode: 'size', type: JVXETypes.select},
        {key: 'anumbers', title: '型', width: '80px', dictCode: 'hsize', type: JVXETypes.select},
        {key: 'bnumbers', title: '号', width: '80px', dictCode: 'xsize', type: JVXETypes.select},
        {key: 'collarLarge', title: '领大', width: '80px', type: JVXETypes.input},
        {key: 'bust', title: '胸围', width: '80px', type: JVXETypes.input},
        {key: 'sleeveLength', title: '袖长', width: '80px', type: JVXETypes.input},
        {key: 'shslLength', title: '连肩袖长', width: '100px', type: JVXETypes.input},

        {key: 'tsWidth', title: '总肩宽', width: '80px', type: JVXETypes.input},
        {key: 'cuff', title: '袖口', width: '80px', type: JVXETypes.input},
        {key: 'waistline', title: '腰围', width: '80px', type: JVXETypes.input},
        {key: 'hem', title: '下摆', width: '80px', type: JVXETypes.input},
        {key: 'createTime', title: '创建时间', width: '100px', type: JVXETypes.datetime},

        {
          title: '操作',
          key: 'action',
          type: JVXETypes.slot,
          fixed: 'right',
          minWidth: '80px',
          align: 'center',
          slotName: 'action',
        }
      ],
      url: {
        list: "/zystylemodel/zyStyleModel/list",
        delete: "/zystylemodel/zyStyleModel/delete",
        add: "/zystylemodel/zyStyleModel/add",
        edit: "/zystylemodel/zyStyleModel/edit",
        deleteBatch: "/zystylemodel/zyStyleModel/deleteBatch",
        exportXlsUrl: "/zystylemodel/zyStyleModel/exportXls",
        importExcelUrl: "zystylemodel/zyStyleModel/importExcel",
      },
      //参数
      styleId: '',
      loadRouteType: false,
      id: null,
      rowId: '',
      dictOptions: {},
      superFieldList: [],
    }
  },
  created() {
    //this.loadData();
    this.loadParameter();
    //备份model原始值
    //this.modelDefault = JSON.parse(JSON.stringify(this.model));
  },
  computed: {
    importExcelUrl: function () {
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    },
  },
  methods: {

    //新增触发事件
    added(event){
      //this.styleId = this.$route.query.id;
      event.row.styleId = this.$route.query.id;
      console.log("新增触发事件", event)
      let httpUrl = this.url.add;
      let method = 'post';
      //httpUrl += this.url.add;
      //method = 'post';
      httpAction(httpUrl, event.row, method).then((res) => {
        if (res.success) {
          this.$message.success(res.message);
          this.$emit('ok');
        } else {
          this.$message.warning(res.message);
        }
      })
    },
    //数据发生变化时事件
    handleValueChange(event) {

      //this.submitForm(event)
      console.log("//数据发生变化时事件", event);
      //const str = event.row.id;
      let httpUrl = '';
      let method = '';

      httpUrl += this.url.edit;
      method = 'put';

      httpAction(httpUrl, event.row, method).then((res) => {
        if (res.success) {
          this.$message.success(res.message);
          this.$emit('ok');
        } else {
          this.$message.warning(res.message);
        }
      })
    },
    // 详情
    viewDetail(id) {
      this.$refs.ZyStyleModelListDetails.showModal(id)
    },
    fanHui() {
      this.$router.push({
        path: '/src/views/zyclothsstyle/ZyClothsStyleList',
        //   query: {  // 路由携带参数
        //     'id': record.id,
        //     'typeId': record.typeId,
        //   }
        // });
      });
    },
    handleDelete: function (id) {
      if (!this.url.delete) {
        this.$message.error("请设置url.delete属性!")
        return
      }
      var that = this;
      deleteAction(that.url.delete, {id: id}).then((res) => {
        if (res.success) {
          //重新计算分页问题
          that.reCalculatePage(1)
          that.$message.success(res.message);
          that.loadData();
        } else {
          that.$message.warning(res.message);
        }
      });
    },
    submitForm(props) {
      this.model = Object.assign({}, props);
      var str = props.rowId;
      let httpurl = '';
      let method = '';
      if (str.search("row") !== -1) {
        httpurl += this.url.add;
        method = 'post';
      } else {
        httpurl += this.url.edit;
        method = 'put';
      }
      httpAction(httpurl, props.row, method).then((res) => {
        if (res.success) {
          this.$message.success(res.message);
          this.$emit('ok');
        } else {
          this.$message.warning(res.message);
        }
      })
    },
    //加载传递参数
    loadParameter() {
      if (this.loadRouteType === false) {
        this.id = this.$route.query.id;
        //this.styleId = this.id;
        this.biaoTi = this.$route.query.styleNames + "款式型号管理";
        //console.log("**********传递到此层的id：" + this.id);
        this.loadRouteType = true;
      }
    },
    // 加载数据
    loadData(arg) {
      //加载数据 若传入参数1则加载第一页的内容
      if (arg === 1) {
        this.pagination.current = 1;
      }
      // 调用查询数据接口
      this.loadParameter();
      var params = this.getQueryParams();//查询条件
      this.loading = true;
      getAction(this.url.list, params).then(res => {
        if (res.success) {
          /*// 后台查询回来的 total，数据总数量
          this.pagination.total = res.result.total*/
          // 将查询的数据赋值给 dataSource
          this.dataSource = res.result.records || res.result;
          console.log(this.dataSource, 'abc')
          if (res.result.total) {
            this.pagination.total = res.result.total;
          } else {
            this.pagination.total = 0;
          }
          //this.dataSource = res.result.records

        } else {
          this.$error({title: '主表查询失败', content: res.message})
        }
      }).finally(() => {
        // 这里是无论成功或失败都会执行的方法，在这里关闭loading
        this.loading = false
      })
    },

    // 当分页参数变化时触发的事件
    handlePageChange(event) {
      // 重新赋值
      this.pagination.current = event.current
      this.pagination.pageSize = event.pageSize
      // 查询数据
      this.loadData()
    },
    initDictConfig() {
    },
    getQueryParams() {
      //获取查询条件
      let sqp = {}
      if (this.superQueryParams) {
        sqp['superQueryParams'] = encodeURI(this.superQueryParams)
        sqp['superQueryMatchType'] = this.superQueryMatchType
      }
      var param = Object.assign(sqp, this.queryParam, this.isorter, this.filters);
      param.field = this.getQueryField();
      param.pageNo = this.ipagination.current;
      param.pageSize = this.ipagination.pageSize;
      param.styleId = this.id
      return filterObj(param);
    },
    getSuperFieldList() {
      let fieldList = [];
      fieldList.push({type: 'string', value: 'styleId', text: '款式id', dictCode: ''})
      fieldList.push({type: 'int', value: 'isdefault', text: '是否默认尺码', dictCode: ''})
      fieldList.push({type: 'int', value: 'modelNumber', text: '型号编码', dictCode: ''})
      fieldList.push({type: 'int', value: 'size', text: '码数', dictCode: ''})
      fieldList.push({type: 'string', value: 'anumbers', text: '型', dictCode: ''})
      fieldList.push({type: 'string', value: 'bnumbers', text: '号', dictCode: ''})
      fieldList.push({type: 'double', value: 'collarLarge', text: '领大', dictCode: ''})
      fieldList.push({type: 'double', value: 'bust', text: '胸围', dictCode: ''})
      fieldList.push({type: 'double', value: 'sleeveLength', text: '袖长', dictCode: ''})
      fieldList.push({type: 'double', value: 'shslLength', text: '连肩袖长', dictCode: ''})
      fieldList.push({type: 'double', value: 'tsWidth', text: '总肩宽', dictCode: ''})
      fieldList.push({type: 'double', value: 'cuff', text: '袖口', dictCode: ''})
      fieldList.push({type: 'double', value: 'waistline', text: '腰围', dictCode: ''})
      fieldList.push({type: 'double', value: 'hem', text: '下摆', dictCode: ''})
      this.superFieldList = fieldList
    }
  }
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>