| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461 |
- import type { BasicColumn } from '@/components/Table';
- import { h } from 'vue';
- import connectedIcon from '@/assets/images/table/camera-netConnect.png';
- import unConnectedIcon from '@/assets/images/table/camera-netUnconnect.png';
- import { ElTag } from 'element-plus';
- export const queryTypeSelect = [
- {
- value: 'cameraIp',
- label: 'IP地址',
- },
- {
- value: 'name',
- label: '设备ID',
- },
- ];
- export const protocalTypeSelect = [
- {
- value: 'haikang',
- label: '海康',
- },
- {
- value: 'dahua',
- label: '大华',
- },
- {
- value: 'anxus',
- label: '安迅士',
- },
- {
- value: 'huawei',
- label: '华为',
- },
- ];
- export const cameraAddType = [
- {
- value: 'ip',
- label: 'IP/域名',
- },
- {
- value: 'ipRange',
- label: 'IP段',
- },
- ];
- type CameraAddFormItem = {
- label: string;
- prop: string;
- placeholder: string;
- type: 'input' | 'select' | 'tree-select';
- option?: { value: any; label: any }[];
- required: boolean;
- rule?: any[];
- labelWidth?: string;
- disabled?: boolean;
- };
- export const cameraIPAddForm: CameraAddFormItem[] = [
- {
- label: '名称:',
- prop: 'name',
- placeholder: '请输入名称',
- type: 'input',
- required: true,
- rule: [{ required: true, message: '请输入名称', trigger: 'blur' }],
- },
- {
- label: 'IP地址:',
- prop: 'cameraIp',
- placeholder: '请输入IP地址',
- type: 'input',
- required: true,
- rule: [{ required: true, message: '请输入IP地址', trigger: 'blur' }],
- },
- {
- label: '端口:',
- prop: 'cameraPort',
- placeholder: '请输入端口号',
- type: 'input',
- required: true,
- rule: [{ required: true, message: '请输入端口号', trigger: 'blur' }],
- },
- {
- label: '协议类型:',
- prop: 'cameraType',
- placeholder: '请输入协议类型',
- type: 'select',
- required: true,
- option: protocalTypeSelect,
- rule: [{ required: true, message: '请输入协议类型', trigger: 'blur' }],
- },
- {
- label: '用户名:',
- prop: 'username',
- placeholder: '请输入用户名',
- type: 'input',
- required: true,
- rule: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
- },
- {
- label: '场景:',
- prop: 'workspaceCode',
- placeholder: '请输入场景名称',
- type: 'tree-select',
- required: true,
- rule: [{ required: true, message: '请输入场景名称', trigger: 'blur' }],
- },
- {
- label: '密码:',
- prop: 'password',
- placeholder: '请输入用户名密码',
- type: 'input',
- required: true,
- rule: [{ required: true, message: '请输入用户名密码', trigger: 'blur' }],
- },
- {
- label: '工位负责人:',
- prop: 'principal',
- placeholder: '请输入工位负责人',
- type: 'input',
- required: false,
- },
- {
- label: '设备ID号:',
- prop: 'code',
- placeholder: '自定义ID,不能重复',
- type: 'input',
- required: true,
- rule: [{ required: true, message: '请输入设备ID号', trigger: 'blur' }],
- },
- {
- label: '备注:',
- prop: 'remark',
- placeholder: '请输入备注',
- type: 'input',
- required: false,
- },
- ];
- export const cameraRangeAddForm: CameraAddFormItem[] = [
- {
- label: '启用IP地址:',
- prop: 'startIp',
- placeholder: '请输入启用IP地址',
- type: 'input',
- labelWidth: '96px',
- required: true,
- rule: [{ required: true, message: '请输入启用IP地址', trigger: 'blur' }],
- },
- {
- label: '协议类型:',
- prop: 'cameraType',
- placeholder: '请输入协议类型',
- type: 'select',
- required: true,
- option: protocalTypeSelect,
- rule: [{ required: true, message: '请输入协议类型', trigger: 'blur' }],
- },
- {
- label: '用户名:',
- prop: 'user',
- placeholder: '请输入用户名',
- type: 'input',
- labelWidth: '60px',
- required: false,
- rule: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
- },
- {
- label: '结束IP地址:',
- prop: 'endIp',
- placeholder: '请输入结束IP地址',
- type: 'input',
- labelWidth: '96px',
- required: true,
- rule: [{ required: true, message: '请输入结束IP地址', trigger: 'blur' }],
- },
- {
- label: '端口:',
- prop: 'port',
- placeholder: '请输入端口号',
- type: 'input',
- required: false,
- rule: [{ required: true, message: '请输入端口号', trigger: 'blur' }],
- },
- {
- label: '密码:',
- prop: 'password',
- placeholder: '请输入用户名密码',
- type: 'input',
- labelWidth: '60px',
- required: false,
- rule: [{ required: true, message: '请输入用户名密码', trigger: 'blur' }],
- },
- ];
- type CameraShareFormItem = {
- label?: string;
- prop: string;
- placeholder?: string;
- type?: 'input' | 'select' | 'tree-select' | 'radio';
- option?: { value: any; label: any }[];
- required?: boolean;
- rule?: any[];
- labelWidth?: string;
- };
- export const authorityTypeSelect = [
- {
- value: 'look',
- label: '仅可查看',
- },
- {
- value: 'operate',
- label: '可远程控制',
- },
- ];
- export const timeTypeSelect = [
- {
- value: 'Indefinite',
- label: '无限期',
- },
- {
- value: 'definite',
- label: '有限期',
- },
- ];
- export const cameraShareForm: CameraShareFormItem[] = [
- {
- label: '企业账号:',
- prop: 'account',
- placeholder: '请输入企业账号',
- type: 'input',
- required: true,
- rule: [{ required: true, message: '请输入企业账号', trigger: 'blur' }],
- },
- {
- label: '权限设置:',
- prop: 'authority',
- //placeholder: '请输入IP地址',
- type: 'radio',
- required: true,
- option: authorityTypeSelect,
- rule: [{ required: true, message: '', trigger: 'blur' }],
- },
- {
- label: '企业名称:',
- prop: 'name',
- placeholder: '请输入企业名称',
- type: 'input',
- required: true,
- rule: [{ required: true, message: '请输入企业名称', trigger: 'blur' }],
- },
- {
- label: '分享时间:',
- prop: 'time',
- //placeholder: '请输入协议类型',
- type: 'select',
- required: true,
- option: timeTypeSelect,
- rule: [{ required: true, message: '', trigger: 'blur' }],
- },
- {
- label: '备注:',
- prop: 'notes',
- placeholder: '请输入备注',
- type: 'input',
- required: false,
- rule: [{ required: true, message: '请输入备注', trigger: 'blur' }],
- },
- {
- label: '分享企业:',
- prop: 'shareList',
- // placeholder: '请输入场景名称',
- // type: 'tree-select',
- required: true,
- rule: [{ required: true, message: '', trigger: 'blur' }],
- },
- ];
- export const rules = {
- account: [{ required: true, message: '请输入企业账号', trigger: 'blur' }],
- authority: [{ required: true, message: '', trigger: 'change' }],
- name: [{ required: true, message: '请输入企业名称', trigger: 'change' }],
- time: [{ required: true, message: '', trigger: 'change' }],
- shareList: [{ required: true, message: '', trigger: 'blur' }],
- };
- export const columns: BasicColumn[] = [
- {
- label: '联网状态',
- prop: 'networkingState',
- render(record) {
- return h(
- 'img',
- {
- src: record.row.networkingState === 0 ? unConnectedIcon : connectedIcon,
- style:
- 'width: 20px; height: 20px; object-fit: fill; display: inline-block; line-height: 20px; vertical-align: middle;',
- },
- {},
- );
- },
- minWidth: 120,
- align: 'center',
- sortable: 'custom',
- },
- {
- label: '名称',
- prop: 'name',
- minWidth: 200,
- },
- {
- label: '账号',
- prop: 'account',
- minWidth: 200,
- },
- {
- label: '联网状态',
- prop: 'networkingState',
- render(record) {
- const updateNetworkingState = (row) => {
- if (row.networkingState === 0) {
- row.networkingState = 1;
- } else {
- row.networkingState = 0;
- }
- };
- return h(
- ElTag,
- { onClick: () => updateNetworkingState(record.row), style: 'cursor: pointer;' },
- {
- default: () => {
- return record.row.networkingState === 0 ? '连接' : '断开连接';
- },
- },
- );
- },
- minWidth: 120,
- },
- ];
- export const sharedCaremaType = [
- {
- value: 'incomplete',
- label: '待添加',
- },
- {
- value: 'complete',
- label: '已添加',
- },
- ];
- export const cameraSharedForm: CameraAddFormItem[] = [
- {
- label: '名称:',
- prop: 'name',
- placeholder: '请输入名称',
- type: 'input',
- required: true,
- disabled: false,
- rule: [{ required: true, message: '请输入名称', trigger: 'blur' }],
- },
- {
- label: 'IP地址:',
- prop: 'cameraIp',
- placeholder: '请输入IP地址',
- type: 'input',
- required: true,
- disabled: true,
- rule: [{ required: true, message: '请输入IP地址', trigger: 'blur' }],
- },
- {
- label: '端口:',
- prop: 'cameraPort',
- placeholder: '请输入端口号',
- type: 'input',
- required: true,
- disabled: true,
- rule: [{ required: true, message: '请输入端口号', trigger: 'blur' }],
- },
- {
- label: '协议类型:',
- prop: 'cameraType',
- placeholder: '请输入协议类型',
- type: 'input',
- required: true,
- disabled: true,
- rule: [{ required: true, message: '请输入协议类型', trigger: 'blur' }],
- },
- {
- label: '用户名:',
- prop: 'username',
- placeholder: '请输入用户名',
- type: 'input',
- required: true,
- disabled: true,
- rule: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
- },
- {
- label: '场景:',
- prop: 'workshopName',
- placeholder: '请输入场景名称',
- type: 'input',
- required: true,
- disabled: false,
- rule: [{ required: true, message: '请输入场景名称', trigger: 'blur' }],
- },
- {
- label: '密码:',
- prop: 'password',
- placeholder: '请输入用户名密码',
- type: 'input',
- required: true,
- disabled: true,
- rule: [{ required: true, message: '请输入用户名密码', trigger: 'blur' }],
- },
- {
- label: '企业账号:',
- prop: 'companyAccount',
- placeholder: '请输入企业账号',
- type: 'input',
- disabled: true,
- required: false,
- },
- {
- label: '设备ID号:',
- prop: 'code',
- placeholder: '自定义ID,不能重复',
- type: 'input',
- required: true,
- disabled: false,
- rule: [{ required: true, message: '请输入设备ID号', trigger: 'blur' }],
- },
- {
- label: '企业名称:',
- prop: 'companyName',
- placeholder: '请输入企业名称',
- type: 'input',
- disabled: true,
- required: false,
- },
- ];
- export interface CameraSharedItem {
- cameraIp: string; //ip地址
- cameraType: string; //协议类型
- cameraPort: string; //端口地址
- companyAccount: number; //企业账号
- companyName: string; //企业名称
- code: string; //设备ID
- workshopName: string; //车间场景
- workspaceName: string; //工位场景
- shareState: string; //是否添加
- password?: string; //密码
- username?: string; //用户名
- }
|