master
2022-03-22 e3f069b4fbb1ddcbc9f1c0832634200555789268
src/cool/modules/douMsg/views/douMsg.vue
@@ -1,5 +1,132 @@
<template>
  <div>
    <h1>斗轮机详情页</h1>
  </div>
</template>
  <cl-crud :ref="setRefs('crud')"
           @load="onLoad">
    <el-row type="flex"
            align="middle">
      <!-- 刷新按钮 -->
      <cl-refresh-btn />
      <!-- 新增按钮 -->
      <cl-add-btn />
      <!-- 删除按钮 -->
      <cl-multi-delete-btn />
      <cl-flex1 />
      <!-- 关键字搜索 -->
      <cl-search-key />
    </el-row>
    <el-row>
      <!-- 数据表格 -->
      <cl-table :ref="setRefs('table')"
                v-bind="table" />
    </el-row>
    <el-row type="flex">
      <cl-flex1 />
      <!-- 分页控件 -->
      <cl-pagination />
    </el-row>
    <!-- 新增、编辑 -->
    <cl-upsert :ref="setRefs('upsert')"
               v-bind="upsert" />
  </cl-crud>
</template>
<script lang="ts">
import { defineComponent, reactive } from "vue";
import { CrudLoad, Upsert, Table } from "@cool-vue/crud/types";
import { useCool } from "/@/cool";
export default defineComponent({
   setup() {
      const { refs, setRefs, service } = useCool();
      // 新增、编辑配置
      const upsert = reactive<Upsert>({
         items: [
            {
               label: "名称",
               prop: "trubine_name",
               component: {
                  name: "el-input"
               },
               //是否为必填项,注:接口配置字段时没有设置默认值时,都需要选择必填
               required: true
            },
            {
               label: "编号",
               prop: "trubine_no",
               component: {
                  name: "el-input"
               }
            },
            {
               label: "尺寸",
               prop: "trubine_size",
               component: {
                  name: "el-input"
               }
            },
            {
               label: "备注",
               prop: "remark",
               component: {
                  name: "el-input"
               }
            }
         ]
      });
      // 表格配置
      const table = reactive<Table>({
         columns: [
            {
               type: "selection",
               align: "center"
            },
            {
               label: "id",
               prop: "id",
               sortable: true //是否排序功能
            },
            {
               label: "名称",
               prop: "trubine_name"
            },
            {
               label: "编号",
               prop: "trubine_no",
               width: 200
            },
            {
               label: "尺寸型号",
               prop: "trubine_size"
            },
            {
               label: "备注",
               prop: "remark"
            },
            {
               label: "操作",
               type: "op"
            }
         ]
      });
      // crud 加载
      function onLoad({ ctx, app }: CrudLoad) {
         // 绑定 service
         ctx.service(service.business.doutrubine).done();
         app.refresh();
      }
      return {
         refs,
         setRefs,
         upsert,
         table,
         onLoad
      };
   }
});
</script>