Browse Source

增加 设计值/频率的限制
增加 设计值/频率的菜单权限

iZaiZaiA 2 years ago
parent
commit
0c0c48af43

+ 2 - 2
src/layout/index.vue

@@ -6,7 +6,8 @@
         <el-aside :width="isCollapse?'120px':'250px'" class="hc-aside-box" :class="[isCollapse?'collapse':'', MenuBarKey]">
             <div class="hc-aside-logo-box" @click="logoClick">
                 <img class="logo-img" :src="getAssetsHomeFile(`${AppColor.name}.png`)" alt="">
-                <img class="logo-img-1" :src="MenuBarKey === 'home-index' ? NameWhite : NameDark" alt="" v-show="!isCollapse">
+                <img class="logo-img-1 white" :src="MenuBarKey === 'home-index' ? NameWhite : NameDark" alt="" v-if="!isCollapse">
+                <img class="logo-img-1 dark" :src="NameWhite" alt="" v-if="!isCollapse">
             </div>
             <div class="hc-aside-menu-box">
                 <el-scrollbar>
@@ -228,7 +229,6 @@ const getAssetsHomeFile = (url) => {
 
 const handleChange = () => {
     let file = document.getElementById("file").files[0]; // 获取input上传的图片数据;
-    let img = new Image();
     let url = window.URL.createObjectURL(file); // 得到bolb对象路径,可当成普通的文件路径一样使用,赋值给src;
     document.getElementById("imagebox").src = url;
 }

+ 88 - 37
src/styles/app/theme.scss

@@ -1,62 +1,113 @@
 //通用样式
 html {
-    color: #333333;
-    background-color: #F5F5F5;
     transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s, background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s;
     --hc-body-bg-color: #F5F5F5;
     --hc-bg-color: #ffffff;
     --hc-text-color: #333333;
     --hc-shadow: 4px 4px 8px 0 rgba(54,92,167,0.15), -4px -4px 8px 0 #ffffff;
+    //左侧菜单
+    .hc-layout-box .hc-aside-box .hc-aside-logo-box .logo-img-1 {
+        &.white {
+            display: block;
+        }
+        &.dark {
+            display: none;
+        }
+    }
 }
 
 //深色主题设置
 html.dark {
-    background-color: #101014;
-    color: rgba(255, 255, 255, 0.82);
     --hc-body-bg-color: #101014;
-    --hc-bg-color: #18181c;
+    --hc-bg-color: #292929;
     --hc-text-color: rgba(255, 255, 255, 0.82);
-    --hc-shadow: 4px 4px 8px 0 rgba(54,92,167,0.15), -4px -4px 8px 0 #ffffff;
-    .n-layout .n-layout-scroll-container {
-        background-color: inherit;
+    --hc-shadow: 4px 4px 8px 0 rgba(0,0,0,0.15), -4px -4px 8px 0 #3d3d3d;
+    --el-bg-color-overlay: #393939;
+    --hc-border-color: #474646;
+    --hc-label-color: #8f9eb2;
+    html, body, #app {
+        background: var(--el-bg-color-overlay);
     }
-    .n-card.hc-card-overflow-p-box .n-card__action,
-    .n-card.hc-card-overflow-box .n-card__action {
-        background-color: inherit;
+    //左侧菜单
+    .hc-layout-box .hc-aside-box {
+        color: var(--el-text-color-primary);
+        background: var(--el-bg-color-overlay);
+        box-shadow: initial;
+        border: 1px solid var(--hc-border-color);
+        border-left: 0;
+        border-bottom: 0;
+        .hc-aside-logo-box .logo-img-1 {
+            &.white {
+                display: none;
+            }
+            &.dark {
+                display: block;
+            }
+        }
+        //菜单
+        .el-menu-item, .el-sub-menu__title {
+            color: var(--hc-label-color);
+        }
+        .hc-aside-bar-box:before {
+            background-image: linear-gradient(90deg, rgba(102, 102, 102, 0) 11%, #474646 35%, #474646 64%, rgba(102, 102, 102, 0) 86%);
+        }
     }
-    .pover-menu-list .list-item:hover {
-        background-color: #404041;
+    //卡片
+    .hc-card-box.el-card {
+        box-shadow: initial;
+        color: var(--hc-text-color);
+        border: 1px solid var(--hc-border-color);
+        .el-card__body .hc-card-action-box {
+            border-top: 1px solid var(--hc-border-color);
+            background-color: var(--el-bg-color-overlay);
+        }
     }
-    .data-fill-list-box .n-collapse .n-collapse-item {
-        border: 1px solid #303030;
-        background-color: #212121;
+    //设置里的副标题
+    .hc-screenshot-box .item .label {
+        color: var(--hc-label-color);
     }
-    .data-fill-list-box .n-collapse .n-collapse-item .n-collapse-item__header.n-collapse-item__header--active {
-        background-color: #404041;
-        border-bottom: 1px solid #303030;
+    //设置里的选择卡片
+    .hc-theme-box .item {
+        border: 1px solid var(--hc-border-color);
+        background-color: var(--el-bg-color-overlay);
+        &.active {
+            box-shadow: 4px 4px 8px 0 rgba(61,60,60,0.15), 0 0 8px 0 #1d1d1d;
+        }
+        .action {
+            background-color: var(--hc-bg-color);
+            border-top: 1px solid var(--hc-border-color);
+        }
     }
-    .data-fill-list-box .data-fill-list-item-content .data-fill-table-tip-box {
-        border-left: 1px solid #303030;
+
+    //顶部项目合同下拉框
+    .hc-layout-box .hc-container-view .hc-header-view .hc-header-content .hc-header-cascader-box .el-cascader .el-input .el-input__wrapper {
+        background: #696969;
     }
-    .hc-layout-box .hc-layout-content-box .data-fill-foot-box {
-        background-color: var(--hc-bg-color) !important;
-        color: var(--hc-text-color) !important;
-        border: 1px solid #303030;
+    .hc-layout-box .hc-container-view .hc-header-view .hc-header-content .hc-header-cascader-box .el-cascader .el-input.is-focus .el-input__wrapper {
+        box-shadow: var(--hc-shadow);
     }
-    .hc-image-data-content-box .n-collapse .n-collapse-item {
-        border: 1px solid #303030;
-        background-color: #212121;
+    .hc-layout-box .hc-container-view .hc-header-view .hc-header-content .hc-header-cascader-box .el-cascader .el-input .el-input__wrapper .el-input__inner,
+    .hc-layout-box .hc-container-view .hc-header-view .hc-header-content .hc-header-cascader-box .el-cascader .el-input .el-input__wrapper .el-input__suffix {
+        color: var(--hc-text-color);
     }
-    .hc-image-data-content-box .n-collapse .n-collapse-item .n-collapse-item__header.n-collapse-item__header--active {
-        color: var(--hc-primary);
-        background-color: #404041;
+    //顶部图标按钮
+    .header-icon-bar {
+        background: #696969;
+        color: var(--hc-text-color);
     }
-    .hc-image-data-content-box .hc-collapse-list-box .item-box:hover {
-        color: var(--hc-primary);
-        background-color: #303030;
+    //顶部用户信息
+    .user-info-bar {
+        .user-name, .arrow-icon {
+            color: var(--hc-text-color);
+        }
+        &:before {
+            border-left: 1px solid var(--hc-border-color);
+        }
     }
-    .hc-line-menu {
-        background: var(--hc-bg-color);
-        border-top: 1px solid #303030;
+
+    //按钮
+    .el-button[hc-btn] {
+        border: 1px solid var(--hc-border-color);
     }
+
 }

+ 31 - 11
src/views/data-fill/components/ListItem.vue

@@ -99,16 +99,16 @@
                 </el-radio-group>
             </div>
             <el-form-item label="设计值">
-                <el-input v-model="formIDVFModel.design" placeholder="请输入设计值"/>
+                <el-input v-model="formIDVFModel.design" placeholder="请输入设计值" onkeyup="value = value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')"/>
             </el-form-item>
             <el-form-item label="频率" v-if="formIDVFModel.type === 1">
-                <el-input v-model="formIDVFModel.size" placeholder="请输入频率"/>
+                <el-input v-model="formIDVFModel.size" placeholder="请输入频率" onkeyup="value = value.replace(/^(0+)|[^\d]+/g,'')"/>
             </el-form-item>
             <el-form-item label="容量" v-if="formIDVFModel.type === 2">
-                <el-input v-model="formIDVFModel.capacity" placeholder="请输入容量"/>
+                <el-input v-model="formIDVFModel.capacity" placeholder="请输入容量" onkeyup="value = value.replace(/^(0+)|[^\d]+/g,'')"/>
             </el-form-item>
             <el-form-item label="合格点数">
-                <el-input v-model="formIDVFModel.fail" placeholder="请填写合格点数(不填写则默认全部合格)"/>
+                <el-input v-model="formIDVFModel.fail" placeholder="请填写合格点数(不填写则默认全部合格)" onkeyup="value = value.replace(/^(0+)|[^\d]+/g,'')"/>
             </el-form-item>
         </el-form>
     </HcDialog>
@@ -141,7 +141,7 @@ import notableform from '~src/assets/view/notableform.svg';
 import HTableForm from "~src/plugins/HTableForm"
 import wbsApi from "~api/data-fill/wbs"
 import HcUpload from "./HcUpload.vue"
-import {utilsText, isType, formValidate, deepClone} from "vue-utils-plus"
+import {utilsText, isType, formValidate, deepClone, getObjValue} from "vue-utils-plus"
 
 //初始
 const props = defineProps({
@@ -165,6 +165,10 @@ const props = defineProps({
         type: [String,Number],
         default: ''
     },
+    projectInfo: {
+        type: Object,
+        default: () => ({})
+    },
 })
 const {isString, getObjNullValue, getArrValue} = isType()
 const {setPosInsert, setPosRange} = utilsText()
@@ -173,6 +177,7 @@ const classify = ref(props.classify)
 const isStatus = ref(props.status)
 const isPrimaryKeyId = ref(props.primaryKeyId)
 const contractId = ref(props.contractId)
+const projectInfo = ref(props.projectInfo)
 
 //监听
 watch(() => [
@@ -180,11 +185,13 @@ watch(() => [
     props.classify,
     props.primaryKeyId,
     props.contractId,
-], ([datas, classifyVal, primaryKeyId, cid]) => {
+    props.projectInfo,
+], ([datas, classifyVal, primaryKeyId, cid, pInfo]) => {
     listDatas.value = datas
     classify.value = classifyVal
     isPrimaryKeyId.value = primaryKeyId
     contractId.value = cid
+    projectInfo.value = pInfo
     setFormDataNum(datas)
 })
 
@@ -224,6 +231,7 @@ const setFormDataNum = (datas) => {
         })
     }
     formData.value = newArr
+    setTableFormMenu(projectInfo.value)
 }
 
 //展开事件
@@ -526,11 +534,22 @@ const uploadChange = async ({type}) => {
 const tableFormItemNode = ref({})
 
 //菜单数据
-const tableFormMenu = ref([
-    {label: '插入设计值/频率', key: "IDVF"},
-    {label: '插入特殊字符', key: "special"},
-    {label: '关联试验数据', key: "CTD"},
-])
+const tableFormMenu = ref([])
+
+//设置菜单权限数据
+const setTableFormMenu = (info) => {
+    const infos = getObjValue(info)
+    const isOpen = infos['isOpenRandomNumber'] ?? 0
+    let newArr = []
+    if (isOpen === 1) {
+        newArr.push({label: '插入设计值/频率', key: "IDVF"})
+    }
+    //newArr.push({label: '插入设计值/频率', key: "IDVF"})
+    newArr.push({label: '插入特殊字符', key: "special"})
+    newArr.push({label: '关联试验数据', key: "CTD"})
+    tableFormMenu.value = newArr
+}
+
 
 //鼠标右键事件
 const contextMenuRef = ref(null)
@@ -560,6 +579,7 @@ const IDVFModal = ref(false)
 const formIDVFRef = ref(null)
 const formIDVFModel = ref({type: 1, design: '', size: '', dev: '', key: '', capacity: '', fail: '', pkId: ''})
 
+
 //插入特殊字符
 const specialModal = ref(false)
 const specialCharacters = ref([

+ 2 - 2
src/views/data-fill/wbs.vue

@@ -39,7 +39,7 @@
             <HcDrawer :show="isDrawer" actionUi="text-center" to-id="wbs-node-tree-card-target" @close="drawerClose">
                 <!--清表列表-->
                 <el-scrollbar ref="ListItemScrollRef" v-if="ListItemDatas.length > 0">
-                    <ListItem ref="ListItemsRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" :primaryKeyId="primaryKeyId" :contractId="contractId" @renew="getTableDataAll"/>
+                    <ListItem ref="ListItemsRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" :projectInfo="projectInfo" :primaryKeyId="primaryKeyId" :contractId="contractId" @renew="getTableDataAll"/>
                 </el-scrollbar>
                 <HcStatus text="暂无表单" v-else/>
                 <!--底部按钮区域-->
@@ -140,7 +140,7 @@
                     </template>
                     <!--清表列表-->
                     <el-scrollbar ref="ListItemScrollRef" v-loading="ListItemLoading" v-if="ListItemDatas.length > 0">
-                        <ListItem ref="ListItemRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" :primaryKeyId="primaryKeyId" :contractId="contractId" @renew="getTableDataAll"/>
+                        <ListItem ref="ListItemRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" :projectInfo="projectInfo" :primaryKeyId="primaryKeyId" :contractId="contractId" @renew="getTableDataAll"/>
                     </el-scrollbar>
 
                     <HcStatus text="暂无表单" v-else/>