Pre Merge pull request !160 from dh/mastercope
commit
61c2a453f4
|
|
@ -4,7 +4,7 @@ NODE_ENV=development
|
||||||
VITE_DEV=true
|
VITE_DEV=true
|
||||||
|
|
||||||
# 请求路径
|
# 请求路径
|
||||||
VITE_BASE_URL='http://localhost:48080'
|
VITE_BASE_URL='http://192.168.2.132:48080'
|
||||||
|
|
||||||
# 上传路径
|
# 上传路径
|
||||||
VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload'
|
VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload'
|
||||||
|
|
|
||||||
17
package.json
17
package.json
|
|
@ -32,6 +32,23 @@
|
||||||
"@element-plus/icons-vue": "^2.1.0",
|
"@element-plus/icons-vue": "^2.1.0",
|
||||||
"@form-create/designer": "^3.1.0",
|
"@form-create/designer": "^3.1.0",
|
||||||
"@form-create/element-ui": "^3.1.17",
|
"@form-create/element-ui": "^3.1.17",
|
||||||
|
"@grapecity/spread-excelio": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-barcode": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-charts": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-designer": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-designer-resources-cn": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-designer-vue": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-io": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-languagepackages": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-pdf": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-pivot-addon": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-print": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-resources-zh": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-shapes": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-slicers": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-tablesheet": "^16.1.0",
|
||||||
|
"@grapecity/spread-sheets-vue": "^16.1.0",
|
||||||
"@iconify/iconify": "^3.1.0",
|
"@iconify/iconify": "^3.1.0",
|
||||||
"@videojs-player/vue": "^1.0.0",
|
"@videojs-player/vue": "^1.0.0",
|
||||||
"@vueuse/core": "^10.1.2",
|
"@vueuse/core": "^10.1.2",
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,9 @@ const renderLayout = () => {
|
||||||
case 'cutMenu':
|
case 'cutMenu':
|
||||||
const { renderCutMenu } = useRenderLayout()
|
const { renderCutMenu } = useRenderLayout()
|
||||||
return renderCutMenu()
|
return renderCutMenu()
|
||||||
|
case 'desgin':
|
||||||
|
const { renderDesign } = useRenderLayout()
|
||||||
|
return renderDesign()
|
||||||
default:
|
default:
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,18 @@ const layout = computed(() => appStore.getLayout)
|
||||||
>
|
>
|
||||||
<div class="absolute h-full w-[33%] top-0 left-[10%] bg-gray-200"></div>
|
<div class="absolute h-full w-[33%] top-0 left-[10%] bg-gray-200"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div
|
||||||
|
:class="[
|
||||||
|
`${prefixCls}__cut-menu`,
|
||||||
|
'relative w-56px h-48px cursor-pointer bg-gray-300',
|
||||||
|
{
|
||||||
|
'is-acitve': layout === 'desgin'
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
@click="appStore.setLayout('desgin')"
|
||||||
|
>
|
||||||
|
<div class="absolute h-full w-[33%] top-0 left-[10%] bg-gray-200"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -268,11 +268,23 @@ export const useRenderLayout = () => {
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
const renderDesign = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div class="flex items-center bg-[var(--top-header-bg-color)] border-bottom-1 border-solid border-[var(--top-tool-border-color)] dark:border-[var(--el-border-color)]">
|
||||||
|
{logo.value ? <Logo class="hover-trigger !pr-15px"></Logo> : undefined}
|
||||||
|
</div>
|
||||||
|
<div class="absolute top-[var(--logo-height)] left-0 w-full h-[calc(100%-var(--logo-height))] flex">
|
||||||
|
243
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
renderClassic,
|
renderClassic,
|
||||||
renderTopLeft,
|
renderTopLeft,
|
||||||
renderTop,
|
renderTop,
|
||||||
renderCutMenu
|
renderCutMenu,
|
||||||
|
renderDesign
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
export type LayoutType = 'classic' | 'topLeft' | 'top' | 'cutMenu'
|
export type LayoutType = 'classic' | 'topLeft' | 'top' | 'cutMenu' | 'desgin'
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-button @click="setDataSource">绑定数据源</el-button>
|
||||||
|
<div id="ssDesigner" style="height: 700px; width: 100%; text-align: left"></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css'
|
||||||
|
import '@grapecity/spread-sheets-designer/styles/gc.spread.sheets.designer.min.css'
|
||||||
|
import '@grapecity/spread-sheets-shapes'
|
||||||
|
import '@grapecity/spread-sheets-pivot-addon'
|
||||||
|
import '@grapecity/spread-sheets-tablesheet'
|
||||||
|
import GC from '@grapecity/spread-sheets'
|
||||||
|
import '@grapecity/spread-sheets-resources-zh'
|
||||||
|
GC.Spread.Common.CultureManager.culture('zh-cn')
|
||||||
|
import '@grapecity/spread-sheets-designer-resources-cn'
|
||||||
|
import '@grapecity/spread-sheets-designer'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Designer',
|
||||||
|
props: {},
|
||||||
|
setup() {
|
||||||
|
let designer: any
|
||||||
|
let spreadDom
|
||||||
|
let spread
|
||||||
|
const setDataSource = () => {
|
||||||
|
alert('oo')
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById('ssDesigner'))
|
||||||
|
spreadDom = designer.getWorkbook().getHost()
|
||||||
|
spread = GC.Spread.Sheets.findControl(spreadDom)
|
||||||
|
})
|
||||||
|
|
||||||
|
return {
|
||||||
|
designer,
|
||||||
|
spread,
|
||||||
|
setDataSource
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped></style>
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<template>
|
||||||
|
<div class="my-process-designer__container">
|
||||||
|
<div
|
||||||
|
class="my-process-designer__canvas"
|
||||||
|
ref="bpmnCanvas"
|
||||||
|
id="bpmnCanvas"
|
||||||
|
style="width: 1680px; height: 800px"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts" name="excel">
|
||||||
|
import BpmnModeler from 'bpmn-js/lib/Modeler'
|
||||||
|
// 翻译方法
|
||||||
|
import customTranslate from '@/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate'
|
||||||
|
import translationsCN from '@/components/bpmnProcessDesigner/package/designer/plugins/translate/zh'
|
||||||
|
let bpmnModeler: any = null
|
||||||
|
|
||||||
|
const additionalModules = computed(() => {
|
||||||
|
const Modules: any[] = []
|
||||||
|
// 翻译模块
|
||||||
|
const TranslateModule = {
|
||||||
|
translate: ['value', customTranslate(translationsCN)]
|
||||||
|
}
|
||||||
|
Modules.push(TranslateModule)
|
||||||
|
return Modules
|
||||||
|
})
|
||||||
|
const initBpmn = () => {
|
||||||
|
let data = document.getElementById('bpmnCanvas')
|
||||||
|
bpmnModeler = new BpmnModeler({
|
||||||
|
container: data,
|
||||||
|
keyboard: { bindTo: document },
|
||||||
|
additionalModules: additionalModules.value
|
||||||
|
})
|
||||||
|
bpmnModeler.createDiagram(() => {
|
||||||
|
bpmnModeler.get('canvas').zoom('fit-viewport')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
initBpmn()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style last="scss" scoped></style>
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-button>上传excel1</el-button>
|
||||||
|
<div ref="ssHost" style="height: 500px; width: 100%; text-align: left"></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts" name="excel">
|
||||||
|
import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css'
|
||||||
|
import '@grapecity/spread-sheets-designer/styles/gc.spread.sheets.designer.min.css'
|
||||||
|
import '@grapecity/spread-sheets-vue'
|
||||||
|
import GC from '@grapecity/spread-sheets'
|
||||||
|
import '@grapecity/spread-sheets-resources-zh'
|
||||||
|
GC.Spread.Common.CultureManager.culture('zh-cn')
|
||||||
|
|
||||||
|
const ssHost: any = ref(null)
|
||||||
|
onMounted(() => {
|
||||||
|
let workbook = new GC.Spread.Sheets.Workbook(ssHost.value)
|
||||||
|
let sheet = workbook.getActiveSheet()
|
||||||
|
console.log(sheet)
|
||||||
|
|
||||||
|
const formData: Array<object> = reactive([
|
||||||
|
{ label: '姓名', value: '12' },
|
||||||
|
{ label: '年龄', value: '32' },
|
||||||
|
{ label: '性别', value: '2' },
|
||||||
|
{ label: '电话', value: '2' },
|
||||||
|
{ label: '邮箱', value: '2' },
|
||||||
|
{ label: '地址', value: '2' },
|
||||||
|
{ label: '教育背景', value: '2' },
|
||||||
|
{ label: '工作经历', value: '2' },
|
||||||
|
{ label: '技能', value: '2' }
|
||||||
|
])
|
||||||
|
// 渲染表单
|
||||||
|
formData.forEach((field, index) => {
|
||||||
|
sheet.getCell(index, 0).value(field.label)
|
||||||
|
sheet.getCell(index, 1).value(field.value)
|
||||||
|
})
|
||||||
|
console.log(workbook, ssHost, formData)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style last="scss" scoped></style>
|
||||||
Loading…
Reference in New Issue