fuchengshen
2022-06-24 0924fcc06ead4d10ea5d0d579c8224850a0f37a4
更改设备分组页面样式
5个文件已修改
1个文件已添加
278 ■■■■■ 已修改文件
src/cool/modules/base/components/role/select_device.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/base/views/user.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/basedevice/views/basedevice_group.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/hntask/views/immediate_task.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/hntask/views/periodic_task.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vite.config.ts 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/base/components/role/select_device.vue
New file
@@ -0,0 +1,66 @@
<template>
  <el-select v-model="value"
             v-bind="props"
             multiple
             @change="onChange">
    <el-option v-for="(item, index) in list"
               :key="index"
               :value="item.logic_id"
               :label="item.logic_id" />
  </el-select>
</template>
<script lang="ts">
import { defineComponent, onMounted, ref, watch } from "vue";
import { useCool } from "/@/cool";
import { isArray } from "/@/cool/utils";
export default defineComponent({
    name: "cl-device-select",
    props: {
        modelValue: [String, Number, Array],
        props: Object
    },
    emits: ["update:modelValue"],
    setup(props, { emit }) {
        // 请求服务
        const { service } = useCool();
        // 数据列表
        const list = ref<any[]>([]);
        // 绑定值
        const value = ref<any>();
        // 绑定值回调
        function onChange(val: any) {
            emit("update:modelValue", val);
        }
        // 解析值
        watch(
            () => props.modelValue,
            (val: any) => {
                value.value = (isArray(val) ? val : [val]).filter(Boolean);
            },
            {
                immediate: true
            }
        );
        onMounted(async () => {
            console.log(list, "list");
            list.value = await service.business.basedeviceinfo.list();
        });
        return {
            list,
            value,
            onChange
        };
    }
});
</script>
src/cool/modules/base/views/user.vue
@@ -2,81 +2,72 @@
    <div class="system-user">
        <div class="pane">
            <!-- 组织架构 -->
            <div class="dept" :class="[isExpand ? '_expand' : '_collapse']">
                <cl-dept-tree
                    @row-click="onDeptRowClick"
      <div class="dept"
           :class="[isExpand ? '_expand' : '_collapse']">
        <cl-dept-tree @row-click="onDeptRowClick"
                    @user-add="onDeptUserAdd"
                    @list-change="onDeptListChange"
                />
                      @list-change="onDeptListChange" />
            </div>
            <!-- 成员列表 -->
            <div class="user">
                <div class="header">
                    <div class="icon" @click="deptExpand">
                        <i class="el-icon-arrow-left" v-if="isExpand"></i>
                        <i class="el-icon-arrow-right" v-else></i>
          <div class="icon"
               @click="deptExpand">
            <i class="el-icon-arrow-left"
               v-if="isExpand"></i>
            <i class="el-icon-arrow-right"
               v-else></i>
                    </div>
                    <span>成员列表</span>
                </div>
                <div class="container">
                    <cl-crud :ref="setRefs('crud')" :on-refresh="onRefresh" @load="onLoad">
          <cl-crud :ref="setRefs('crud')"
                   :on-refresh="onRefresh"
                   @load="onLoad">
                        <el-row type="flex">
                            <cl-refresh-btn />
                            <cl-add-btn />
                            <cl-multi-delete-btn />
                            <el-button
                                v-permission="service.base.sys.user.permission.move"
              <el-button v-permission="service.base.sys.user.permission.move"
                                size="mini"
                                type="success"
                                :disabled="selects.ids.length == 0"
                                @click="toMove()"
                                >转移</el-button
                            >
                         @click="toMove()">转移</el-button>
                            <cl-flex1 />
                            <cl-search-key />
                        </el-row>
                        <el-row>
                            <cl-table
                                :ref="setRefs('table')"
              <cl-table :ref="setRefs('table')"
                                v-bind="table"
                                @selection-change="onSelectionChange"
                            >
                        @selection-change="onSelectionChange">
                                <!-- 头像 -->
                                <template #column-headImg="{ scope }">
                                    <cl-avatar
                                        shape="square"
                  <cl-avatar shape="square"
                                        size="medium"
                                        :src="scope.row.headImg"
                                        :style="{ margin: 'auto' }"
                                    />
                             :style="{ margin: 'auto' }" />
                                </template>
                                <!-- 权限 -->
                                <template #column-roleName="{ scope }">
                                    <el-tag
                                        v-for="(item, index) in scope.row.roleNameList"
                  <el-tag v-for="(item, index) in scope.row.roleNameList"
                                        :key="index"
                                        disable-transitions
                                        size="small"
                                        effect="dark"
                                        style="margin: 2px"
                                        >{{ item }}</el-tag
                                    >
                          style="margin: 2px">{{ item }}</el-tag>
                                </template>
                                <!-- 单个转移 -->
                                <template #slot-move-btn="{ scope }">
                                    <el-button
                                        v-permission="service.base.sys.user.permission.move"
                  <el-button v-permission="service.base.sys.user.permission.move"
                                        type="text"
                                        size="mini"
                                        @click="toMove(scope.row)"
                                        >转移</el-button
                                    >
                             @click="toMove(scope.row)">转移</el-button>
                                </template>
                            </cl-table>
                        </el-row>
@@ -86,18 +77,17 @@
                            <cl-pagination />
                        </el-row>
                        <cl-upsert
                            :ref="setRefs('upsert')"
            <cl-upsert :ref="setRefs('upsert')"
                            v-bind="upsert"
                            :on-submit="onUpsertSubmit"
                        />
                       :on-submit="onUpsertSubmit" />
                    </cl-crud>
                </div>
            </div>
        </div>
        <!-- 部门移动 -->
        <cl-dept-move :ref="setRefs('dept-move')" @success="refresh({ page: 1 })" />
    <cl-dept-move :ref="setRefs('dept-move')"
                  @success="refresh({ page: 1 })" />
    </div>
</template>
@@ -395,9 +385,11 @@
        // 刷新监听
        async function onRefresh(params: any, { next, render }: any) {
            const { list } = await next(params);
            console.log(list, "list");
            render(
                list.map((e: any) => {
                    console.log(e, "刷新打印e");
                    if (e.roleName) {
                        e.roleNameList = e.roleName.split(",");
                    }
src/cool/modules/basedevice/views/basedevice_group.vue
@@ -48,11 +48,19 @@
                {
                    label: "逻辑ID",
                    prop: "logic_id",
                    value: [],
                    component: {
                        name: "el-input"
                        name: "cl-device-select",
                        props: {
                            props: {
                                "multiple-limit": 3
                            }
                        }
                    },
                    //是否为必填项,注:接口配置字段时没有设置默认值时,都需要选择必填
                    required: true
                    rules: {
                        required: true,
                        message: "角色不能为空"
                    }
                },
                {
                    label: "操作人",
@@ -73,7 +81,17 @@
                    label: "状态",
                    prop: "status",
                    component: {
                        name: "el-input"
                        name: "el-radio-group",
                        options: [
                            {
                                label: "未启用",
                                value: 0
                            },
                            {
                                label: "启用",
                                value: 1
                            }
                        ]
                    }
                }
            ]
@@ -105,7 +123,28 @@
                },
                {
                    label: "状态",
                    prop: "status"
                    prop: "status",
                    dict: [
                        {
                            label: "停用",
                            value: 0,
                            type: "info" //success  warning  danger  info可选
                        },
                        {
                            label: "启用",
                            value: 1
                        }
                    ],
                    filters: [
                        {
                            text: "停用",
                            value: 0
                        },
                        {
                            text: "启用",
                            value: 1
                        }
                    ]
                },
                {
                    label: "操作",
@@ -121,11 +160,6 @@
        }
        async function onRefresh(params: any, { next, done, render }: any) {
            // params 是每次请求的参数
            // next(params) 是继续往下执行 page 的请求
            // done() 完成请求,关闭loading
            // render(list, pagination) 渲染列表及分页信息
            let { list, pagination } = await next({});
            list.map((_e: any) => {});
src/cool/modules/hntask/views/immediate_task.vue
@@ -204,7 +204,36 @@
                },
                {
                    label: "状态",
                    prop: "status"
                    prop: "status",
                    dict: [
                        {
                            label: "未执行",
                            value: 0,
                            type: "info" //success  warning  danger  info可选
                        },
                        {
                            label: "执行中",
                            value: 1
                        },
                        {
                            label: "未执行",
                            value: 2
                        }
                    ],
                    filters: [
                        {
                            text: "未执行",
                            value: 0
                        },
                        {
                            text: "执行中",
                            value: 1
                        },
                        {
                            text: "已执行",
                            value: 2
                        }
                    ]
                },
                {
                    label: "操作",
src/cool/modules/hntask/views/periodic_task.vue
@@ -54,6 +54,20 @@
                    required: true
                },
                {
                    label: "任务指令",
                    prop: "task_command",
                    component: {
                        name: "el-input"
                    }
                },
                {
                    label: "任务内容描述",
                    prop: "task_content",
                    component: {
                        name: "el-input"
                    }
                },
                {
                    prop: "task_type",
                    value: 1,
                    label: "任务类型",
@@ -104,7 +118,17 @@
                    label: "状态",
                    prop: "status",
                    component: {
                        name: "el-input"
                        name: "el-radio-group",
                        options: [
                            {
                                label: "未启用",
                                value: 0
                            },
                            {
                                label: "启用",
                                value: 1
                            }
                        ]
                    }
                }
            ]
@@ -161,6 +185,14 @@
                    width: 100
                },
                {
                    label: "任务指令",
                    prop: "task_command"
                },
                {
                    label: "任务内容描述",
                    prop: "task_content"
                },
                {
                    label: "设备分组ID",
                    prop: "group_id"
                },
@@ -174,7 +206,28 @@
                },
                {
                    label: "状态",
                    prop: "status"
                    prop: "status",
                    dict: [
                        {
                            label: "停用",
                            value: 0,
                            type: "info" //success  warning  danger  info可选
                        },
                        {
                            label: "启用",
                            value: 1
                        }
                    ],
                    filters: [
                        {
                            text: "停用",
                            value: 0
                        },
                        {
                            text: "启用",
                            value: 1
                        }
                    ]
                },
                {
                    label: "操作",
vite.config.ts
@@ -18,8 +18,8 @@
  const proxy = {
    "/dev": {
      // target: "http://192.168.1.16:8001",
      target: "http://47.92.33.19:8001",
      // target: "http://127.0.0.1:8001",
      // target: "http://47.92.33.19:8001",
      target: "http://127.0.0.1:8001",
      changeOrigin: true,
      rewrite: (path: string) => path.replace(/^\/dev/, "")
    },