123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597 |
- // 不显示的信息点数组
- import text from "@/utils/handsontable/mainText"
- import tools from "@/utils/scan/tools"
- import fieldData from "@/utils/handsontable/fillterField"
- import dataTypeMap from "./dataTypeMap"
- //在编辑模式下并且勾选隐藏自动填充的信息点不显示的字段
- let noShowArr = [
- "specification",
- "serviceLife"
- ]
- //在编辑模式下不显示的字段
- let cantShow = [
- "EquipQRCode",
- "EquipID",
- "EquipName",
- "BIMLocation",
- "Brand",
- "Specification",
- "Manufacturer",
- "Supplier",
- "SupplierContactor",
- "SupplierPhone",
- "SupplierEmail",
- "SupplierWeb",
- "SupplierFax",
- "Maintainer",
- "MaintainerContactor",
- "MaintainerPhone",
- "MaintainerEmail",
- "MaintainerWeb",
- "Principal",
- "MaintainerFax",
- "Insurer",
- "InsurerContactor",
- "InsurerPhone",
- "InsurerEmail",
- "InsurerWeb",
- "InsurerFax",
- "InsuranceFile",
- "EquipID",
- "EquipName",
- "SpaceCount",
- "SpaceList",
- "TenantID",
- "ShaftID"
- ]
- //台账编辑页面不显示的厂商信息
- let firmArr = [
- "brand", //品牌
- "specification", //设备型号
- "manufacturer", //生产厂家
- "supplier", //供应商单位名称
- "supplierContactor", //供应商联系人
- "supplierPhone", //供应商联系电话
- "supplierEmail", //供应商电子邮件
- "supplierWeb", //供应商网址
- "supplierFax", //供应商传真
- "maintainer", //维修商单位名称
- "maintainerContactor", //维修商联系人
- "maintainerPhone", //维修商联系电话
- "maintainerEmail", //维修商电子邮件
- "maintainerWeb", //维修商网址
- "maintainerFax", //维修商传真
- "insurer", //保险公司名称
- "insurerContactor", //保险公司联系人
- "insurerPhone", //保险公司联系电话
- 'insurerEmail', //保险公司电子邮件
- "insurerWeb", //保险公司网址
- "insurerFax", //保险公司传真
- // "dpManufacturerId",//品牌型号Id
- // "dpSupplierId",//供应商信息Id
- // "dpMaintainerId",//维修商信息Id
- // "dpInsurerId"//保险公司信息Id
- ]
- // 将映射表枚举值转为数组
- const mapToArr = () => {
- const arr = []
- for(let key in dataTypeMap) {
- arr.push(dataTypeMap[key])
- }
- return arr;
- }
- const showTools = {
- inputModeArr: mapToArr(),
- cantShow: (code) => {
- let falg = true
- cantShow.map(item => {
- if (item == code) {
- falg = false
- }
- })
- return falg
- },
- fixedNoShowField: (noShowList, code) => {
- let flag = true
- noShowList.map(item => {
- if (item == code) {
- flag = false
- }
- })
- return flag
- },
- isShow: (code) => {
- let falg = true
- noShowArr.map(item => {
- if (item == code) {
- falg = false
- }
- })
- return falg
- },
- arrToArr(arr, showType) {
- let first = 0,
- scound = 0,
- three = 0,
- four = 0
- arr.find(function (value, index, arr) {
- let flag = (showType != "Visible" || value.visible)
- if (
- ((value.code == "brand" && flag) ||
- (value.code == "specification" && flag) ||
- (value.code == "manufacturer" && flag)) && !first
- ) {
- first = index
- }
- if (
- ((value.code == "supplier" && flag) ||
- (value.code == "supplierContactor" && flag) ||
- (value.code == "supplierEmail" && flag) ||
- (value.code == "supplierWeb" && flag) ||
- (value.code == "supplierFax" && flag) ||
- (value.code == "supplierPhone" && flag)) && !scound
- ) {
- scound = index
- }
- if (
- ((value.code == "maintainer" && flag) ||
- (value.code == "maintainerContactor" && flag) ||
- (value.code == "maintainerPhone" && flag) ||
- (value.code == "maintainerEmail" && flag) ||
- (value.code == "maintainerWeb" && flag) ||
- (value.code == "maintainerFax" && flag)) && !three
- ) {
- three = index
- }
- if (
- ((value.code == "insurer" && flag) ||
- (value.code == "insurerContactor" && flag) ||
- (value.code == "insurerPhone" && flag) ||
- (value.code == "insurerEmail" && flag) ||
- (value.code == "insurerWeb" && flag) ||
- (value.code == "insurerFax" && flag)) && !four
- ) {
- four = index
- }
- })
- let numList = [first, scound, three, four]
- numList.reverse().map((item, index) => {
- if (item) {
- if (index == 0) {
- arr.splice(item, 0, {
- category: 'STATIC',
- dataType: "STRING",
- firstName: "基本信息",
- aliasCode: "dpInsurerId",
- aliasName: "保险公司信息",
- name: "保险公司信息",
- code: "dpInsurerId",
- origCode: "dpInsurerId",
- origDataType: "Str",
- path: "dpInsurerId",
- priority: "S",
- editable: true,
- visible: true
- })
- } else if (index == 1) {
- arr.splice(item, 0, {
- category: 'STATIC',
- dataType: "STRING",
- firstName: "基本信息",
- aliasCode: "dpMaintainerId",
- aliasName: "维修商信息",
- name: "维修商信息",
- code: "dpMaintainerId",
- origCode: "dpMaintainerId",
- origDataType: "Str",
- path: "dpMaintainerId",
- priority: "S",
- editable: true,
- visible: true
- })
- } else if (index == 2) {
- arr.splice(item, 0, {
- category: 'STATIC',
- dataType: "STRING",
- firstName: "基本信息",
- aliasCode: "dpSupplierId",
- aliasName: "供应商信息",
- name: "供应商信息",
- code: "dpSupplierId",
- origCode: "dpSupplierId",
- origDataType: "Str",
- path: "dpSupplierId",
- priority: "S",
- editable: true,
- visible: true
- })
- } else if (index == 3) {
- arr.splice(item, 0, {
- category: 'STATIC',
- dataType: "STRING",
- firstName: "基本信息",
- aliasCode: "dpManufacturerId",
- aliasName: "生产厂家/品牌/型号",
- name: "生产厂家/品牌/型号",
- code: "dpManufacturerId",
- origCode: "dpManufacturerId",
- origDataType: "Str",
- path: "dpManufacturerId",
- priority: "S",
- editable: true,
- visible: true
- })
- }
- }
- })
- return arr
- },
- /**
- *
- * @param {*} arr 原始表头数组
- * @param {*} type 对应表格的模块类型
- * @param {*} onlyRead 是否只读
- * @param {*} showType 查看类型(全部;只看要采集的信息;隐藏部分信息)
- * @param {*} taizhang 是否是台账类型(默认为false)
- *
- */
- headerTextFilter(arr, type, onlyRead, showType, taizhang = false) {
- if (taizhang && !onlyRead) {
- arr = this.arrToArr(arr, showType)
- }
- let data = arr.map(item => {
- // if (type == "property" && item.firstTag == "RunParam") { //资产台账不显示运行参数
- // return undefined
- // }
- if (onlyRead) { //只读模式
- if (!this.filterUnshow(onlyRead, type, item.code)) { //过滤固定不显示字段
- return undefined
- }
- if (showType == "Visible" && item.visible) { //只看要采集的信息
- return this.isUnit(item)
- } else if (showType == "all") { //显示全部
- return this.isUnit(item)
- } else {
- return undefined
- }
- } else { //编辑模式
- if (taizhang && !this.filterFirm(item.code)) {
- return undefined
- }
- if (!this.filterUnshow(onlyRead, type, item.code)) { //过滤固定不显示字段
- return undefined
- }
- if (showType == "Visible" && item.visible) { //只看要采集的信息
- return this.isUnit(item)
- } else if (showType == "all") { //显示全部
- return this.isUnit(item)
- } else if (showType == "partInfo" && item.visible && this.isShow(item.code)) { //隐藏部分厂家信息(***需维护不显示列表***)
- // if (item.FirstName == "控制参数" || item.FirstName == "设定参数" || item.FirstName == "运行参数") {
- if (item.firstTag == "techParam") { //技术参数
- return undefined
- } else {
- return this.isUnit(item)
- }
- } else {
- return undefined
- }
- }
- }).filter(d => d)
- return data
- },
- headerTypeFilter(arr, type, onlyRead, showType, taizhang = false) {
- if (taizhang && !onlyRead) {
- arr = this.arrToArr(arr, showType)
- }
- text.readOnly = onlyRead;
- let data = arr.map(item => {
- // if (type == "property" && item.firstTag == "runParam") { //资产台账不显示运行参数
- // return undefined
- // }
- if (onlyRead) { //只读模式
- if (!this.filterUnshow(onlyRead, type, item.code)) { //过滤固定不显示字段
- return undefined
- }
- if (showType == "Visible" && item.visible) { //只看要采集的信息
- return this.textFormat(item, onlyRead)
- } else if (showType == "all") { //显示全部
- return this.textFormat(item, onlyRead)
- } else {
- return undefined
- }
- } else { //编辑模式
- if (taizhang && !this.filterFirm(item.code)) {
- return undefined
- }
- if (!this.filterUnshow(onlyRead, type, item.code)) { //过滤固定不显示字段
- return undefined
- }
- if (showType == "Visible" && item.visible) { //只看要采集的信息
- return this.inputModeFilter(item, onlyRead)
- } else if (showType == "all") { //显示全部
- return this.inputModeFilter(item, onlyRead)
- } else if (showType == "partInfo" && item.visible && this.isShow(item.code)) { //隐藏部分厂家信息(***需维护不显示列表***)
- // if (item.FirstName == "控制参数" || item.FirstName == "设定参数" || item.FirstName == "运行参数") {
- if (item.firstTag == "techParam") { //技术参数
- return undefined
- } else {
- return this.inputModeFilter(item, onlyRead)
- }
- } else {
- return undefined
- }
- }
- }).filter(d => d)
- return data
- },
- isUnit(item) {
- if (!item.unit || item.unit == "") {
- return item.name;
- } else {
- return item.name + "(" + item.unit + ")";
- }
- },
- textFormat(item, onlyRead) {
- console.log(item.path);
- if (
- // item.code == "EquipQRCode" ||
- // item.code == "RoomQRCode"
- item.code == "defaultQRCode"
- ) {
- return {
- data: item.path,
- renderer: text.lookQRCode,
- readOnly: onlyRead
- }
- }
- //图片类型
- if (
- item.code == "installPic" ||
- item.code == "nameplate" ||
- item.code == "pic"
- ) {
- return {
- data: item.path,
- renderer: text.picType,
- readOnly: onlyRead
- }
- }
- //文件类型
- if (item.code == "insuranceFile" ||
- item.code == "archive" ||
- item.code == "checkReport" ||
- item.code == "maintainManual" ||
- item.code == "approachingAcceptance" ||
- item.code == "acceptanceReport" ||
- item.code == "operationManual" ||
- item.code == "originalCertificate" ||
- item.code == "testReport" ||
- item.code == "productCertification" ||
- item.code == "installInstruction" ||
- item.code == "supplierContract" ||
- item.code == "drawing" ||
- item.code == "installDrawing"
- ) {
- return {
- data: item.path,
- renderer: text.fileType,
- readOnly: onlyRead
- }
- }
- if (item.category == 'STATIC') {
- if (item.dataType == dataTypeMap.ENUM || item.dataType == dataTypeMap.BOOLEAN) { //单选输入
- return {
- data: item.path,
- renderer: tools.customDropdownRenderer,
- editor: "chosen",
- readOnly: onlyRead,
- chosenOptions: {
- data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
- }
- };
- } else if (item.dataType == dataTypeMap.DOUBLE || item.dataType == dataTypeMap.INTEGER) { // 数字输入
- return {
- data: item.path,
- renderer: tools.customDropdownRenderer,
- editor: "chosen",
- readOnly: onlyRead,
- chosenOptions: {
- multiple: true, //多选
- data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
- }
- };
- } else if (item.dataType == dataTypeMap.DOUBLE || item.dataType == dataTypeMap.INTEGER) { // 数字输入
- return {
- data: item.path,
- type: "numeric",
- readOnly: onlyRead,
- numericFormat: {
- pattern: "0,0.00"
- }
- };
- } else if (item.dataType == dataTypeMap.DATETIME) { // 日期输入
- return {
- data: item.path,
- type: "date",
- dateFormat: "YYYYMMDDHHmmss",
- readOnly: onlyRead,
- correctFormat: true
- };
- } else if (item.dataType == dataTypeMap.STRING) { // 文本输入
- return {
- data: item.path,
- readOnly: onlyRead
- }
- } else { //(未支持的输入方式)暂不支持编辑
- return {
- data: item.path,
- readOnly: onlyRead
- }
- }
- } else {// 动态信息点
- console.log(`%c${item.category}-${item.dataType}`,`color:#c215e1;font-size: 20px;background:#434101`);
- return {
- data: item.path,
- readOnly: !item.editable
- }
- }
- },
- inputModeFilter(item, onlyRead) {
- if (
- // item.code == "EquipQRCode" ||
- // item.code == "RoomQRCode"
- item.code == "defaultQRCode"
- ) {
- return {
- data: item.path,
- renderer: text.lookQRCode,
- readOnly: !item.editable
- }
- }
- //图片类型
- if (
- item.code == "installPic" ||
- item.code == "nameplate" ||
- item.code == "pic"
- ) {
- return {
- data: item.path,
- renderer: text.picType,
- readOnly: !item.editable
- }
- }
- //文件类型
- if (item.code == "insuranceFile" ||
- item.code == "archive" ||
- item.code == "checkReport" ||
- item.code == "maintainManual" ||
- item.code == "approachingAcceptance" ||
- item.code == "acceptanceReport" ||
- item.code == "operationManual" ||
- item.code == "originalCertificate" ||
- item.code == "testReport" ||
- item.code == "productCertification" ||
- item.code == "installInstruction" ||
- item.code == "supplierContract" ||
- item.code == "drawing" ||
- item.code == "installDrawing"
- ) {
- return {
- data: item.path,
- renderer: text.fileType,
- readOnly: !item.editable
- }
- }
- //四大厂商
- if (
- item.code == "dpSupplierId" ||
- item.code == "dpMaintainerId" ||
- item.code == "dpInsurerId" ||
- item.code == "dpManufacturerId"
- ) {
- return {
- data: item.path,
- renderer: text.idType,
- readOnly: !item.editable
- }
- }
- if (!item.category) {
- console.log('新版字典无输入类型', item)
- }
- if (item.category == 'STATIC') {
- if (item.dataType == dataTypeMap.ENUM || item.dataType == dataTypeMap.BOOLEAN) { //单选输入
- return {
- data: item.path,
- renderer: tools.customDropdownRenderer,
- editor: "chosen",
- readOnly: !item.editable,
- chosenOptions: {
- data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
- }
- };
- } else if (item.dataType == dataTypeMap.MENUM) { //多选输入
- return {
- data: item.path,
- renderer: tools.customDropdownRenderer,
- editor: "chosen",
- readOnly: !item.editable,
- chosenOptions: {
- multiple: true, //多选
- data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
- }
- };
- } else if (item.dataType == dataTypeMap.DOUBLE || item.dataType == dataTypeMap.INTEGER) { // 数字输入
- return {
- data: item.path,
- type: "numeric",
- readOnly: !item.editable,
- numericFormat: {
- pattern: "0,0.00"
- }
- };
- } else if (item.dataType == dataTypeMap.DATETIME) { // 日期输入
- return {
- data: item.path,
- type: "date",
- dateFormat: item.formater || "YYYYMMDDHHmmss",
- readOnly: !item.editable,
- correctFormat: true
- };
- } else if (item.dataType == dataTypeMap.STRING) { // 文本输入
- return {
- data: item.path,
- readOnly: !item.editable
- }
- } else { // (未支持的输入方式)暂不支持编辑
- return {
- data: item.path,
- readOnly: !item.editable
- }
- }
- } else { // 动态信息点
- console.log(`%c${item.category}-${item.dataType}`,`color:#c215e1;font-size: 20px;background:#434101`);
- return {
- data: item.path,
- readOnly: !item.editable
- }
- }
- },
- filterUnshow: (onlyRead, type, code) => {
- let falg = true,
- data = fieldData[type]
- if (onlyRead) {
- data.onlyRead.map(item => {
- if (item == code) {
- falg = false
- }
- })
- return falg
- } else {
- data.edit.map(item => {
- if (item == code) {
- falg = false
- }
- })
- return falg
- }
- },
- filterFirm: (code) => {
- let falg = true
- firmArr.map(item => {
- if (item == code) {
- falg = false
- }
- })
- return falg
- }
- }
- export default showTools
|