Forráskód Böngészése

修复任务审批的效验提示

iZaiZaiA 3 éve
szülő
commit
fa65f2a797

+ 3 - 0
package.json

@@ -21,14 +21,17 @@
         "remixicon": "^2.5.0",
         "vooks": "^0.2.12",
         "vue": "^3.2.40",
+        "vue-codemirror": "^6.1.1",
         "vue-router": "^4.1.5",
         "vue-utils-plus": "^1.0.3",
         "vuedraggable": "^4.1.0"
     },
     "devDependencies": {
+        "@codemirror/lang-json": "^6.0.0",
         "@vitejs/plugin-vue": "^3.1.2",
         "@vue/compiler-sfc": "^3.2.40",
         "autoprefixer": "^10.4.12",
+        "codemirror": "^6.0.1",
         "postcss": "^8.4.17",
         "sass": "^1.55.0",
         "tailwindcss": "^3.1.8",

+ 19 - 22
src/test/http/components/HcCodeEditor.vue

@@ -1,10 +1,11 @@
 <template>
-    <div id="codeEditBox"></div>
+    <codemirror :modelValue="code" :placeholder="placeholder" :style="{ height: '100%' }" :extensions="extensions" :disabled="isDisabled"/>
 </template>
 
 <script setup>
-import {ref, nextTick, watch, onBeforeUnmount, onMounted} from "vue";
-import {isItem,getArrValue,getObjValue} from "vue-utils-plus"
+import {ref, watch} from "vue";
+import { Codemirror } from 'vue-codemirror'
+import { json } from '@codemirror/lang-json'
 
 //参数
 const props = defineProps({
@@ -12,35 +13,31 @@ const props = defineProps({
         type: [String,Number],
         default: ''
     },
+    placeholder: {
+        type: [String,Number],
+        default: ''
+    },
     data: {
         type: Object,
         default: () => ({})
     },
+    disabled: {
+        type: Boolean,
+        default: true
+    },
 })
 
 //变量
-//let editor;
-const text = ref(props.val,)
-const language = ref('JSON')
+const code = ref(props.val)
+const isDisabled = ref(props.disabled)
+const extensions = ref([json()])
 
 //监听
 watch(() => [
     props.val,
-], ([val]) => {
-    text.value = val
-})
-
-
-onMounted(() => {
-    //editorInit()
-})
-
-
-onBeforeUnmount(()=>{
-    //editor.dispose()
+    props.disabled
+], ([val, disabled]) => {
+    code.value = val
+    isDisabled.value = disabled
 })
 </script>
-
-<style lang="scss" scoped>
-
-</style>

+ 21 - 7
src/test/http/index.vue

@@ -47,7 +47,7 @@
                         </div>
                     </div>
                     <div class="hc-table-ref-box form-data">
-                        <el-table :data="formDataTable" height="100%" row-key="key" border default-expand-all>
+                        <el-table :data="formDataTable" height="100%" row-key="key" border default-expand-all v-if="formDataTypeKey === 'form'">
                             <el-table-column prop="key" label="字段名称" width="220">
                                 <template #default="scope">
                                     <el-input v-model="scope.row.key"/>
@@ -60,21 +60,22 @@
                             </el-table-column>
                             <el-table-column prop="action" label="操作" width="280" align="center">
                                 <template #default="scope">
-                                    <el-button type="primary" plain size="small">
+                                    <el-button type="primary" plain size="small" @click="addFormData(scope)">
                                         <HcIcon name="add-box"/>
                                         <span>添加同级</span>
                                     </el-button>
-                                    <el-button type="primary" plain size="small">
+                                    <el-button type="primary" plain size="small" @click="addFormDatas(scope)">
                                         <HcIcon name="add-circle"/>
                                         <span>添加子级</span>
                                     </el-button>
-                                    <el-button type="danger" plain size="small">
+                                    <el-button type="danger" plain size="small" @click="delFormData(scope)">
                                         <HcIcon name="delete-bin-2"/>
                                         <span>删除</span>
                                     </el-button>
                                 </template>
                             </el-table-column>
                         </el-table>
+                        <HcCodeEditor :data="httpForm" placeholder="请先在表单模式下添加数据..." v-if="formDataTypeKey === 'code'"/>
                     </div>
                 </div>
                 <div class="http-form-res">
@@ -88,12 +89,11 @@
                         </div>
                     </div>
                     <div class="http-form-res-box">
-                        <HcCodeEditor :data="httpForm"/>
+                        <HcCodeEditor :data="httpForm" placeholder="请求响应结果区域..."/>
                     </div>
                 </div>
             </div>
         </HcCard>
-
     </div>
 </template>
 
@@ -135,7 +135,7 @@ const searchClick = () => {
 const formDataTypeKey = ref('form')
 const formDataTypeTab = ref([
     {key:'form',  name: '表单模式'},
-    {key:'code', name: '编辑模式'}
+    {key:'code', name: '查看模式'}
 ]);
 const formDataTypeChange = (item) => {
     formDataTypeKey.value = item?.key;
@@ -152,6 +152,20 @@ const formDataTable = ref([
     }
 ])
 
+//添加同级
+const addFormData = (scope) => {
+    console.log(scope)
+}
+
+//添加子级
+const addFormDatas = (scope) => {
+    console.log(scope)
+}
+
+//删除数据
+const delFormData = (scope) => {
+    console.log(scope)
+}
 </script>
 
 <style lang="scss" scoped>

+ 2 - 57
src/test/index.vue

@@ -1,71 +1,16 @@
 <template>
     <div class="hc-page-box">
         <HcCard title="测试">
-            <el-button type="primary" hc-btn @click="screenShotClick">
-                <HcIcon name="screenshot"/>
-                <span>测试截图</span>
-            </el-button>
+            123456
         </HcCard>
     </div>
 </template>
 
 <script setup>
 import {ref, onMounted, nextTick} from "vue";
-import { getRandom } from "vue-utils-plus"
-
-const uuid = getRandom()
-const videoController = ref(null)
-const canvasController = ref(null)
+//import { getRandom } from "vue-utils-plus"
 
 onMounted(()=> {
-    // 创建并获取webrtc模式所需要的辅助dom
-    let videos = document.createElement("video");
-    videos.autoplay = true;
-    videoController.value = videos;
 
-    //canvas
-    let canvas = document.createElement("canvas");
-    canvas.id = uuid
-    canvas.setAttribute("style","position: absolute; width: 100%; height:100%; z-index: 99999; top: 0; display: none; background: white;");
-    document.body.appendChild(canvas);
-    canvasController.value = canvas.getContext("2d"); //制定画布为2d画布
 })
-
-// 开始捕捉屏幕
-const startCapture = async () => {
-    try {
-        const captureStream = await navigator.mediaDevices.getDisplayMedia({
-            audio: false,
-            video: true,
-            preferCurrentTab: true
-        });
-        videoController.value.srcObject = captureStream
-        return captureStream
-    } catch (err) {
-        console.log(err)
-        console.log('浏览器不支持webrtc或者用户未授权')
-        return null
-    }
-}
-
-// 停止捕捉屏幕
-const stopCapture = () => {
-    const {srcObject} = videoController.value;
-    if (srcObject && "getTracks" in srcObject) {
-        const tracks = srcObject.getTracks();
-        tracks.forEach(track => track.stop());
-        videoController.value.srcObject = null;
-    }
-}
-
-const screenShotClick = async () => {
-    const captureStream = await startCapture()
-    if (captureStream) {
-        console.log(videoController.value)
-        document.getElementById(uuid).style.display = 'block'
-        canvasController.value?.drawImage(videoController.value, 0, 0, 500, 500);
-    }
-    // 停止捕捉屏幕
-    stopCapture();
-}
 </script>

+ 1 - 1
src/views/tasks/hc-data.vue

@@ -233,7 +233,7 @@ const ConfirmApprovalClick = async () => {
         window?.$message?.warning('请先输入审核意见')
     } else {
         SMSAuthLoading.value = true
-        const {error, code, msg, data} = await checkFlowUserIsExistPfxFile()
+        const {error, code, msg, data} = await checkFlowUserIsExistPfxFile({},false)
         //判断数据
         SMSAuthLoading.value = false
         if (!error && code === 200 && data === true) {

+ 137 - 0
yarn.lock

@@ -12,6 +12,78 @@
   resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4"
   integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==
 
+"@codemirror/autocomplete@^6.0.0":
+  version "6.3.0"
+  resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.3.0.tgz#217e16bb6ce63374ec7b9d2a01d007ba53ff0aff"
+  integrity sha512-4jEvh3AjJZTDKazd10J6ZsCIqaYxDMCeua5ouQxY8hlFIml+nr7le0SgBhT3SIytFBmdzPK3AUhXGuW3T79nVg==
+  dependencies:
+    "@codemirror/language" "^6.0.0"
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
+    "@lezer/common" "^1.0.0"
+
+"@codemirror/commands@6.x", "@codemirror/commands@^6.0.0":
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/@codemirror/commands/-/commands-6.1.1.tgz#f92a343f53f4ecff10fc1f4114d0c9e49e7715b7"
+  integrity sha512-ibDohwkk7vyu3VsnZNlQhwk0OETBtlkYV+6AHfn5Zgq0sxa+yGVX+apwtC3M4wh6AH7yU5si/NysoECs5EGS3Q==
+  dependencies:
+    "@codemirror/language" "^6.0.0"
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
+    "@lezer/common" "^1.0.0"
+
+"@codemirror/lang-json@^6.0.0":
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/@codemirror/lang-json/-/lang-json-6.0.0.tgz#6ac373248c2d44ceab6d5d58879cc543095e503e"
+  integrity sha512-DvTcYTKLmg2viADXlTdufrT334M9jowe1qO02W28nvm+nejcvhM5vot5mE8/kPrxYw/HJHhwu1z2PyBpnMLCNQ==
+  dependencies:
+    "@codemirror/language" "^6.0.0"
+    "@lezer/json" "^1.0.0"
+
+"@codemirror/language@6.x", "@codemirror/language@^6.0.0":
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.2.1.tgz#cb10cd785a76e50ecd2fe2dc59ff66af8a41b87a"
+  integrity sha512-MC3svxuvIj0MRpFlGHxLS6vPyIdbTr2KKPEW46kCoCXw2ktb4NTkpkPBI/lSP/FoNXLCBJ0mrnUi1OoZxtpW1Q==
+  dependencies:
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
+    "@lezer/common" "^1.0.0"
+    "@lezer/highlight" "^1.0.0"
+    "@lezer/lr" "^1.0.0"
+    style-mod "^4.0.0"
+
+"@codemirror/lint@^6.0.0":
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/@codemirror/lint/-/lint-6.0.0.tgz#a249b021ac9933b94fe312d994d220f0ef11a157"
+  integrity sha512-nUUXcJW1Xp54kNs+a1ToPLK8MadO0rMTnJB8Zk4Z8gBdrN0kqV7uvUraU/T2yqg+grDNR38Vmy/MrhQN/RgwiA==
+  dependencies:
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
+    crelt "^1.0.5"
+
+"@codemirror/search@^6.0.0":
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-6.2.1.tgz#953ca99e04877f1caa1b521a2b3180dfd1adc499"
+  integrity sha512-Q1JgUSBjQZRPIddlXzad/AVDigdhriLxQNFyP0gfrDTq6LDHNhr95U/tW3bpVssGenkaLzujtu/7XoK4kyvL3g==
+  dependencies:
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
+    crelt "^1.0.5"
+
+"@codemirror/state@6.x", "@codemirror/state@^6.0.0":
+  version "6.1.2"
+  resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-6.1.2.tgz#182d46eabcc17c95508984d6add5a5a641dcd517"
+  integrity sha512-Mxff85Hp5va+zuj+H748KbubXjrinX/k28lj43H14T2D0+4kuvEFIEIO7hCEcvBT8ubZyIelt9yGOjj2MWOEQA==
+
+"@codemirror/view@6.x", "@codemirror/view@^6.0.0":
+  version "6.3.1"
+  resolved "https://registry.yarnpkg.com/@codemirror/view/-/view-6.3.1.tgz#c2f1d8ad569351eb9f8d57956536fc63cd61aaa9"
+  integrity sha512-NKPBphoV9W2Q6tKXk+ge4q5EhMOOC0rpwdGS80/slNSfsVqkN4gwXIEqSprXJFlf9aUKZU7WhPvqRBMNH+hJkQ==
+  dependencies:
+    "@codemirror/state" "^6.0.0"
+    style-mod "^4.0.0"
+    w3c-keyname "^2.2.4"
+
 "@ctrl/tinycolor@^3.4.1":
   version "3.4.1"
   resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz#75b4c27948c81e88ccd3a8902047bcd797f38d32"
@@ -44,6 +116,33 @@
   dependencies:
     "@floating-ui/core" "^1.0.1"
 
+"@lezer/common@^1.0.0":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.0.1.tgz#d014fda6d582c24336fadf2715e76f02f73c8908"
+  integrity sha512-8TR5++Q/F//tpDsLd5zkrvEX5xxeemafEaek7mUp7Y+bI8cKQXdSqhzTOBaOogETcMOVr0pT3BBPXp13477ciw==
+
+"@lezer/highlight@^1.0.0":
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.1.1.tgz#1f4f12f21320d7de102b46a5416eff49fdf3c695"
+  integrity sha512-duv9D23O9ghEDnnUDmxu+L8pJy4nYo4AbCOHIudUhscrLSazqeJeK1V50EU6ZufWF1zv0KJwu/frFRyZWXxHBQ==
+  dependencies:
+    "@lezer/common" "^1.0.0"
+
+"@lezer/json@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@lezer/json/-/json-1.0.0.tgz#848ad9c2c3e812518eb02897edd5a7f649e9c160"
+  integrity sha512-zbAuUY09RBzCoCA3lJ1+ypKw5WSNvLqGMtasdW6HvVOqZoCpPr8eWrsGnOVWGKGn8Rh21FnrKRVlJXrGAVUqRw==
+  dependencies:
+    "@lezer/highlight" "^1.0.0"
+    "@lezer/lr" "^1.0.0"
+
+"@lezer/lr@^1.0.0":
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.2.3.tgz#f44ca844f15f6762fde4eab877d110567e34ffa1"
+  integrity sha512-qpB7rBzH8f6Mzjv2AVZRahcm+2Cf7nbIH++uXbvVOL1yIRvVWQ3HAM/saeBLCyz/togB7LGo76qdJYL1uKQlqA==
+  dependencies:
+    "@lezer/common" "^1.0.0"
+
 "@nodelib/fs.scandir@2.1.5":
   version "2.1.5"
   resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -354,6 +453,19 @@ caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001407:
   optionalDependencies:
     fsevents "~2.3.2"
 
+codemirror@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-6.0.1.tgz#62b91142d45904547ee3e0e0e4c1a79158035a29"
+  integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==
+  dependencies:
+    "@codemirror/autocomplete" "^6.0.0"
+    "@codemirror/commands" "^6.0.0"
+    "@codemirror/language" "^6.0.0"
+    "@codemirror/lint" "^6.0.0"
+    "@codemirror/search" "^6.0.0"
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
+
 color-name@^1.1.4:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
@@ -366,6 +478,11 @@ combined-stream@^1.0.8:
   dependencies:
     delayed-stream "~1.0.0"
 
+crelt@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.5.tgz#57c0d52af8c859e354bace1883eb2e1eb182bb94"
+  integrity sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==
+
 crypto-js@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
@@ -1118,6 +1235,11 @@ strip-literal@^0.4.0:
   dependencies:
     acorn "^8.7.1"
 
+style-mod@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/style-mod/-/style-mod-4.0.0.tgz#97e7c2d68b592975f2ca7a63d0dd6fcacfe35a01"
+  integrity sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==
+
 supports-preserve-symlinks-flag@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
@@ -1283,6 +1405,16 @@ vooks@^0.2.12:
   dependencies:
     evtd "^0.2.2"
 
+vue-codemirror@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/vue-codemirror/-/vue-codemirror-6.1.1.tgz#246697ef4cfa6b2448dd592ade214bb7ff86611f"
+  integrity sha512-rTAYo44owd282yVxKtJtnOi7ERAcXTeviwoPXjIc6K/IQYUsoDkzPvw/JDFtSP6T7Cz/2g3EHaEyeyaQCKoDMg==
+  dependencies:
+    "@codemirror/commands" "6.x"
+    "@codemirror/language" "6.x"
+    "@codemirror/state" "6.x"
+    "@codemirror/view" "6.x"
+
 vue-demi@*:
   version "0.13.11"
   resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99"
@@ -1318,6 +1450,11 @@ vuedraggable@^4.1.0:
   dependencies:
     sortablejs "1.14.0"
 
+w3c-keyname@^2.2.4:
+  version "2.2.6"
+  resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.6.tgz#8412046116bc16c5d73d4e612053ea10a189c85f"
+  integrity sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==
+
 webpack-sources@^3.2.3:
   version "3.2.3"
   resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"