Commit f812aa63 by 朱哲铨

bug 修复

parent 6fca9a19

50 KB | W: | H:

134 KB | W: | H:

build/icons/1024x1024.png
build/icons/1024x1024.png
build/icons/1024x1024.png
build/icons/1024x1024.png
  • 2-up
  • Swipe
  • Onion skin

3.09 KB | W: | H:

3.99 KB | W: | H:

build/icons/128x128.png
build/icons/128x128.png
build/icons/128x128.png
build/icons/128x128.png
  • 2-up
  • Swipe
  • Onion skin

299 Bytes | W: | H:

396 Bytes | W: | H:

build/icons/16x16.png
build/icons/16x16.png
build/icons/16x16.png
build/icons/16x16.png
  • 2-up
  • Swipe
  • Onion skin

461 Bytes | W: | H:

658 Bytes | W: | H:

build/icons/24x24.png
build/icons/24x24.png
build/icons/24x24.png
build/icons/24x24.png
  • 2-up
  • Swipe
  • Onion skin

7.21 KB | W: | H:

14.9 KB | W: | H:

build/icons/256x256.png
build/icons/256x256.png
build/icons/256x256.png
build/icons/256x256.png
  • 2-up
  • Swipe
  • Onion skin

632 Bytes | W: | H:

791 Bytes | W: | H:

build/icons/32x32.png
build/icons/32x32.png
build/icons/32x32.png
build/icons/32x32.png
  • 2-up
  • Swipe
  • Onion skin

1.02 KB | W: | H:

1.27 KB | W: | H:

build/icons/48x48.png
build/icons/48x48.png
build/icons/48x48.png
build/icons/48x48.png
  • 2-up
  • Swipe
  • Onion skin

17.3 KB | W: | H:

44 KB | W: | H:

build/icons/512x512.png
build/icons/512x512.png
build/icons/512x512.png
build/icons/512x512.png
  • 2-up
  • Swipe
  • Onion skin

1.42 KB | W: | H:

1.69 KB | W: | H:

build/icons/64x64.png
build/icons/64x64.png
build/icons/64x64.png
build/icons/64x64.png
  • 2-up
  • Swipe
  • Onion skin
No preview for this file type
No preview for this file type
{ {
"name": "Jomall_Graphics_Lab", "name": "JomallProductionAssistant",
"productName": "Jomall Graphics Lab", "productName": "JomallProductionAssistant",
"description": "", "description": "",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
......
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bDivide>false</bDivide>
<bTransColor>false</bTransColor>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<bUniPrint>false</bUniPrint>
<byResolution>1</byResolution>
<byInk>1</byInk>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<GTOPTION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<szFileName />
<uiCopies>1</uiCopies>
<byPlatenSize>1</byPlatenSize>
<bEcoMode>false</bEcoMode>
<byInk>2</byInk>
<bMaterialBlack>false</bMaterialBlack>
<bMultiple>false</bMultiple>
<byHighlight>1</byHighlight>
<byMask>3</byMask>
<bFastMode>false</bFastMode>
<bDivide>false</bDivide>
<bPause>false</bPause>
<bTransColor>false</bTransColor>
<byChoke>2</byChoke>
<byMinWhite>1</byMinWhite>
<bySaturation>5</bySaturation>
<byBrightness>5</byBrightness>
<byContrast>5</byContrast>
<iCyanBalance>0</iCyanBalance>
<bUniPrint>false</bUniPrint>
<iMagentaBalance>0</iMagentaBalance>
<iYellowBalance>0</iYellowBalance>
<iBlackBalance>0</iBlackBalance>
<byResolution>1</byResolution>
</GTOPTION>
\ No newline at end of file

11.6 KB | W: | H:

3.98 KB | W: | H:

src/assets/logo.jpg
src/assets/logo.jpg
src/assets/logo.jpg
src/assets/logo.jpg
  • 2-up
  • Swipe
  • Onion skin
import {downloadImage, toSend, writeProfileXml} from "@/backend/webserver/utils"; import { downloadImage, toSend, writeProfileXml } from "@/backend/webserver/utils";
const compressing = require('compressing'); const compressing = require("compressing");
var uuid = require("uuid"); var uuid = require("uuid");
const path = require('path'); const path = require("path");
const fs = require('fs'); const fs = require("fs");
const os = require('os'); const os = require("os");
import axios from "axios"; import axios from "axios";
var multiparty = require("multiparty"); var multiparty = require("multiparty");
let fn = new Object(); let fn = new Object();
fn.getPodProductionInfo = async (req, res) => { fn.getPodProductionInfo = async (req, res) => {
const token = req.headers["jwt-token"] const token = req.headers["jwt-token"];
const company = req.headers["company"] const company = req.headers["company"];
const productionNo = req.body.productionNo const productionNo = req.body.productionNo;
try { try {
let {data} = await axios.post(`https://${company}/api/podDesignCenter/getPodImageByProduction`, {productionNo}, {headers: {'jwt-token': token}}) let { data } = await axios.post(`https://${company}/api/podDesignCenter/getPodImageByProduction`, { productionNo }, { headers: { "jwt-token": token } });
console.log(data);
if (data.code === 200 && data.data && data.data.length > 0) { if (data.code === 200 && data.data && data.data.length > 0) {
let f = data.data.find(el => !el.productionFile);
data.data.forEach((el ) => {
if (!el.productionFile.includes("http")) {
el.productionFile = el.productionFile.replace("/data/upload/erp", "");
el.productionFile = `https://${company}/upload/erp/${el.productionFile}`;
}
});
if (f) {
return res.json({ code: 500, msg: "存在地址错误的素材图" });
}
downloadImage(data.data, company, data => { downloadImage(data.data, company, data => {
res.json({code: 200, data}) res.json({ code: 200, data });
}, (err) => { }, (err) => {
res.json({code: 500, msg: '素材图下载失败'}) res.json({ code: 500, msg: "素材图下载失败" });
}) });
} else { } else {
res.json({code: 200, msg: '未找到素材图', data: []}) res.json({ code: 200, msg: "未找到素材图", data: [] });
} }
} catch (err) { } catch (err) {
console.log(err) console.log(err);
res.json({code: 500, msg: '接口调用失败'}) res.json({ code: 500, msg: "接口调用失败" });
} }
} };
fn.findByPodProductionNo = async (req, res) => { fn.findByPodProductionNo = async (req, res) => {
const token = req.headers["jwt-token"] const token = req.headers["jwt-token"];
const company = req.headers["company"] const company = req.headers["company"];
const q = req.body const q = req.body;
try { try {
let {data} = await axios.get(`https://${company}/api/pod/podProductionInfo/findByPodProductionNo`, { let { data } = await axios.get(`https://${company}/api/pod/podProductionInfo/findByPodProductionNo`, {
params: q, params: q,
headers: {'jwt-token': token} headers: { "jwt-token": token }
}) });
res.json(data) res.json(data);
} catch (err) { } catch (err) {
res.json({code: 500, msg: err}) res.json({ code: 500, msg: err });
} }
} };
fn.getCompanyList = async (req, res) => { fn.getCompanyList = async (req, res) => {
try { try {
let {data} = await axios.get('https://platform.jomalls.com/api/tools/getCompanyList') let { data } = await axios.get("https://platform.jomalls.com/api/tools/getCompanyList");
res.send(data) res.send(data);
} catch (err) { } catch (err) {
console.log(err) console.log(err);
res.json({code: 500, msg: err}) res.json({ code: 500, msg: err });
} }
} };
fn.commitApply = async (req, res) => { fn.commitApply = async (req, res) => {
const company = req.headers["company"] const company = req.headers["company"];
const q = req.body const q = req.body;
try { try {
let {data} = await axios.post(`https://${company}/api/sysDeviceInfo/commitApply`, q) let { data } = await axios.post(`https://${company}/api/sysDeviceInfo/commitApply`, q);
res.send(data) res.send(data);
} catch (err) { } catch (err) {
console.log(err) console.log(err);
res.json({code: 500, msg: err}) res.json({ code: 500, msg: err });
} }
} };
fn.completeDelivery = async (req, res) => { fn.completeDelivery = async (req, res) => {
const token = req.headers["jwt-token"] const token = req.headers["jwt-token"];
const company = req.headers["company"] const company = req.headers["company"];
const q = req.body const q = req.body;
try { try {
let {data} = await axios.post(`https://${company}/api/pod/podProductionInfo/completeDelivery`, q, { let { data } = await axios.post(`https://${company}/api/pod/podProductionInfo/completeDelivery`, q, {
headers: {'jwt-token': token} headers: { "jwt-token": token }
}) });
res.json(data) res.json(data);
} catch (err) { } catch (err) {
res.json({code: 500, msg: err}) res.json({ code: 500, msg: err });
} }
} };
fn.downloadByDesignId = async (req, res) => { fn.downloadByDesignId = async (req, res) => {
let q = req.body let q = req.body;
try { try {
let dir = path.join(os.homedir(), '/Desktop/' + q.productionNo+'.zip') let dir = path.join(os.homedir(), "/Desktop/" + q.productionNo + ".zip");
const zipStream = new compressing.zip.Stream(); const zipStream = new compressing.zip.Stream();
for(let k in q.imgList){ for (let k in q.imgList) {
const p = path.join(process.cwd(),'./print/Input/'+q.imgList[k].fileName) const p = path.join(process.cwd(), "./print/Input/" + q.imgList[k].fileName);
zipStream.addEntry(p); zipStream.addEntry(p);
} }
const destStream = fs.createWriteStream(dir); const destStream = fs.createWriteStream(dir);
zipStream.pipe(destStream) zipStream.pipe(destStream)
.on('finish', () => { .on("finish", () => {
console.log('success'); console.log("success");
res.json({code: 200, msg: q.productionNo+'.zip' + '已下载到桌面'}) res.json({ code: 200, msg: q.productionNo + ".zip" + "已下载到桌面" });
}) })
.on('error', () => { .on("error", () => {
res.json({code: 500, msg: '文件下载失败'}) res.json({ code: 500, msg: "文件下载失败" });
}); });
// let ws=fs.createWriteStream(dir ); // let ws=fs.createWriteStream(dir );
// console.log(downloadByDesignId) // console.log(downloadByDesignId)
...@@ -116,80 +127,80 @@ fn.downloadByDesignId = async (req, res) => { ...@@ -116,80 +127,80 @@ fn.downloadByDesignId = async (req, res) => {
// ws.end() // ws.end()
} catch (err) { } catch (err) {
console.log(err) console.log(err);
res.json({code: 500, msg: err}) res.json({ code: 500, msg: err });
} }
} };
fn.uploadImage = async (req, res) => { fn.uploadImage = async (req, res) => {
try { try {
const p = path.join(process.cwd(), './print/Input/') const p = path.join(process.cwd(), "./print/Input/");
let fileName = uuid.v4() + ".png"; let fileName = uuid.v4() + ".png";
console.log(fileName) console.log(fileName);
const form = new multiparty.Form({uploadDir: p}); const form = new multiparty.Form({ uploadDir: p });
form.parse(req, function (err, fields, files) { form.parse(req, function(err, fields, files) {
console.log(fields, files, err) console.log(fields, files, err);
if (err) { if (err) {
res.send({code: 500, err}) res.send({ code: 500, err });
} else { } else {
fs.renameSync(files.file[0].path, path.join(p, fileName)) fs.renameSync(files.file[0].path, path.join(p, fileName));
res.json({code: 200, data: {fileName, url: path.join(process.cwd(), './print/Input/' + fileName)}}) res.json({ code: 200, data: { fileName, url: path.join(process.cwd(), "./print/Input/" + fileName) } });
} }
}); });
} catch (err) { } catch (err) {
console.log(err) console.log(err);
res.json({code: 500, msg: err}) res.json({ code: 500, msg: err });
} }
} };
fn.getPngImg = async (req, res) => { fn.getPngImg = async (req, res) => {
try { try {
const filePath = path.join(process.cwd(), `./print/Input/${req.body.fileName}`); const filePath = path.join(process.cwd(), `./print/Input/${req.body.fileName}`);
console.log(filePath) console.log(filePath);
// 给客户端返回一个文件流 type类型 // 给客户端返回一个文件流 type类型
res.set('content-type', {"png": "image/png", "jpg": "image/jpeg"});//设置返回类型 res.set("content-type", { "png": "image/png", "jpg": "image/jpeg" });//设置返回类型
let stream = fs.createReadStream(filePath); let stream = fs.createReadStream(filePath);
let responseData = [];//存储文件流 let responseData = [];//存储文件流
if (stream) {//判断状态 if (stream) {//判断状态
stream.on('data', function (chunk) { stream.on("data", function(chunk) {
responseData.push(chunk); responseData.push(chunk);
}); });
stream.on('end', function () { stream.on("end", function() {
const finalData = Buffer.concat(responseData); const finalData = Buffer.concat(responseData);
res.write(finalData); res.write(finalData);
res.end(); res.end();
}); });
} }
} catch (err) { } catch (err) {
res.send({code: 500, msg: err}) res.send({ code: 500, msg: err });
} }
} };
fn.login = async (req, res) => { fn.login = async (req, res) => {
const {loginName, company, password, deviceId} = req.body const { loginName, company, password, deviceId } = req.body;
try { try {
let {data} = await axios.post(`https://${company}/api/sysLogin/login`, {loginName, password, deviceId}) let { data } = await axios.post(`https://${company}/api/sysLogin/login`, { loginName, password, deviceId });
res.send(data) res.send(data);
} catch (err) { } catch (err) {
console.log(err) console.log(err);
res.json({code: 500, msg: err}) res.json({ code: 500, msg: err });
} }
} };
fn.toPrint = (req, res) => { fn.toPrint = (req, res) => {
let body = req.body; let body = req.body;
writeProfileXml(body) // 写入xml文件 writeProfileXml(body); // 写入xml文件
// GTXproCMD.exe print -X "Profile\\CO12.xml" -I "Input\\sample.png" -A "Output\\pO12.arxp" -S 03000400 -L 02540254 // GTXproCMD.exe print -X "Profile\\CO12.xml" -I "Input\\sample.png" -A "Output\\pO12.arxp" -S 03000400 -L 02540254
toSend(body).then(r => { toSend(body).then(r => {
res.send({code: 200, msg: '操作成功'}) res.send({ code: 200, msg: "操作成功" });
}).catch(err => { }).catch(err => {
res.send({code: 500, msg: err}) res.send({ code: 500, msg: err });
}) });
}; };
export {fn as default}; export { fn as default };
...@@ -5,39 +5,41 @@ Vue.use(VueRouter); ...@@ -5,39 +5,41 @@ Vue.use(VueRouter);
const routes = [ const routes = [
{ {
path: '/', path: "/",
name: 'login', name: "login",
meta: { meta: {
title: '登录' title: "登录"
}, },
component: (resolve) => require(['../views/login/index.vue'], resolve) component: resolve => require(["../views/login/index.vue"], resolve)
}, },
{ {
path: '/design', path: "/design",
name: 'design', name: "design",
meta: { meta: {
title: '设计页面' title: "设计页面"
}, },
component: (resolve) => require(['../views/design/index.vue'], resolve) component: resolve => require(["../views/design/index.vue"], resolve)
}, },
{ {
path: '/design-copy', path: "/design-copy",
name: 'design', name: "design",
meta: { meta: {
title: '设计页面' title: "设计页面"
}, },
component: (resolve) => require(['../views/design/copy.vue'], resolve) component: resolve => require(["../views/design/copy.vue"], resolve)
}, { },
path: '/design-detail', {
name: 'design', path: "/design-detail",
name: "design",
meta: { meta: {
title: '设计详情页面' title: "设计详情页面"
}, },
component: (resolve) => require(['../views/design/detail/index.vue'], resolve) component: resolve => require(["../views/design/detail/index.vue"], resolve)
}, {
path: '*',
redirect: '/'
}, },
{
path: "*",
redirect: "/"
}
]; ];
const router = new VueRouter({ const router = new VueRouter({
...@@ -46,18 +48,21 @@ const router = new VueRouter({ ...@@ -46,18 +48,21 @@ const router = new VueRouter({
routes routes
}); });
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
let user = Vue.prototype.$dataStore.get('user') let user = Vue.prototype.$dataStore.get("user");
if (to.name === 'login') { if (to.name === "login") {
if (user) { if (user) {
console.log(1) console.log(1);
return next({path:'/design'}) return next({ path: "/design" });
} else { } else {
return next( ) return next();
} }
} else { } else {
return next() if (user) {
return next();
} else {
return next("/");
} }
}) }
});
export default router; export default router;
...@@ -5,39 +5,40 @@ import Vuex from "vuex"; ...@@ -5,39 +5,40 @@ import Vuex from "vuex";
Vue.use(Vuex); Vue.use(Vuex);
const defaultSetting = { const defaultSetting = {
gridShow: 1, gridShow: 1,
language: 'cn', language: "cn",
gridValue: 1, gridValue: 1,
autoPrint: false, autoPrint: false,
gridSpacing: "10mm" gridSpacing: "10mm"
} };
export default new Vuex.Store({ export default new Vuex.Store({
state: { state: {
actionList:[], actionList: [],
imgList:[], imgList: [],
actionIndex:-1, actionIndex: -1,
systemSetting: { systemSetting: {
gridShow: 1, gridShow: 1,
gridValue: 1, gridValue: 1,
language: 'cn', unit: "mm",
language: "cn",
autoPrint: false, autoPrint: false,
gridSpacing: "10mm" gridSpacing: 10
} }
}, },
mutations: { mutations: {
setDefaultSetting(state) { setDefaultSetting(state) {
state.systemSetting = JSON.parse(JSON.stringify(defaultSetting)) state.systemSetting = JSON.parse(JSON.stringify(defaultSetting));
}, },
updateSystemSetting(state, f) { updateSystemSetting(state, f) {
state.systemSetting[f.field] = f.value state.systemSetting[f.field] = f.value;
}, },
changeActionList(state, value) { changeActionList(state, value) {
state.actionList = value state.actionList = value;
}, },
changeActionIndex(state, value) { changeActionIndex(state, value) {
state.actionIndex = value state.actionIndex = value;
}, },
changeImgList(state, value) { changeImgList(state, value) {
state.imgList = value state.imgList = value;
} }
}, },
getters: { getters: {
...@@ -47,8 +48,8 @@ export default new Vuex.Store({ ...@@ -47,8 +48,8 @@ export default new Vuex.Store({
getActionList(state) { getActionList(state) {
return state.actionList; return state.actionList;
}, },
getActionIndex:(state)=> state.actionIndex, getActionIndex: (state) => state.actionIndex,
imgList:(state)=> state.imgList imgList: (state) => state.imgList
}, },
actions: {}, actions: {},
modules: {} modules: {}
......
import axios from 'axios' import axios from "axios";
import Vue from 'vue' import Vue from "vue";
import {Loading} from 'element-ui' import { Loading } from "element-ui";
import router from "../router/index"; import router from "../router/index";
// create an axios instance // create an axios instance
const service = axios.create({ const service = axios.create({
baseURL: 'http://localhost:3000', // url = base url + request url baseURL: "http://localhost:3000", // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests // withCredentials: true, // send cookies when cross-domain requests
timeout: 50000000 // request timeout timeout: 50000000 // request timeout
}) });
let loading let loading;
function startLoading() { function startLoading() {
loading = Loading.service({ loading = Loading.service({
lock: true, lock: true,
text: '拼命加载中...', text: "拼命加载中...",
spinner: 'el-icon-loading', spinner: "el-icon-loading",
background: 'rgba(0,0,0,.7)' background: "rgba(0,0,0,.7)"
}) });
} }
function endLoading() { function endLoading() {
loading.close() loading.close();
} }
// Add a request interceptor // Add a request interceptor
service.interceptors.request.use( service.interceptors.request.use(
config => { config => {
const user = Vue.prototype.$dataStore.get('user') const user = Vue.prototype.$dataStore.get("user");
const company = Vue.prototype.$dataStore.get('company') const company = Vue.prototype.$dataStore.get("company");
if (user) { if (user) {
config.headers['jwt-token'] = user.token config.headers["jwt-token"] = user.token;
config.headers['company'] = company.domain config.headers["company"] = company.domain;
} }
startLoading() startLoading();
return config return config;
}, },
error => { error => {
endLoading() endLoading();
// do something with request error // do something with request error
return Promise.reject(error) return Promise.reject(error);
} }
) );
// Add a response interceptor // Add a response interceptor
service.interceptors.response.use( service.interceptors.response.use(
...@@ -54,42 +54,49 @@ service.interceptors.response.use( ...@@ -54,42 +54,49 @@ service.interceptors.response.use(
* Here is just an example * Here is just an example
* You can also judge the status by HTTP Status Code * You can also judge the status by HTTP Status Code
*/ */
response => { async response => {
// do something with response data // do something with response data
const res = response.data const res = response.data;
endLoading() endLoading();
if (res.code) { if (res.code) {
if (res.code !== 200) { if (res.code !== 200) {
if (res.code === 411) { if (res.code === 411) {
return Promise.resolve(res);
return Promise.resolve(res)
} }
if (res.code === 403) { if (res.code === 403) {
router.replace('/') Vue.prototype.$dataStore.delete("user");
Vue.prototype.$message.error({showClose: true, message: res.msg || res.message || 'Error'}) Vue.prototype.$message.error({
Vue.prototype.$dataStore.delete('user') showClose: true,
return Promise.reject(new Error(res.msg || res.message || 'Error')) message: res.msg || res.message || "Error"
});
setTimeout(() => {
location.reload();
}, 500);
return Promise.reject(new Error(res.msg || res.message || "Error"));
} }
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
if (res.code === 50008 || res.code === 50012 || res.code === 50014) { if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
// TODO: to re-login // TODO: to re-login
} }
Vue.prototype.$message.error({showClose: true, message: res.msg || res.message || 'Error'}) Vue.prototype.$message.error({
showClose: true,
message: res.msg || res.message || "Error"
});
// reject // reject
return Promise.reject(new Error(res.msg || res.message || 'Error')) return Promise.reject(new Error(res.msg || res.message || "Error"));
} else { } else {
return Promise.resolve(res);
return Promise.resolve(res)
} }
} }
return Promise.resolve(res) return Promise.resolve(res);
}, },
error => { error => {
endLoading() endLoading();
// do something with response error // do something with response error
return Promise.reject(error) return Promise.reject(error);
} }
) );
export default service export default service;
export const grid = [
// {
// label: '7×8',
// value: 4,
// col: 7,
// row: 8
// },
// {
// label: '10×12',
// col: 10,
// value: 3,
// row: 12
// },
// {
// label: '14×16',
// col: 14,
// value: 2,
// row: 16
// },
{
label: "16×18",
value: 1,
row: 16,
col: 18,
h: 542,
w: 482
}
// {
// label: '16×21',
// value: 0,
// col: 16,
// row: 21
// }
];
\ No newline at end of file
export default { export default {
byInk:` byInk: `
<b>油墨选择</b> <b>油墨选择</b>
<p>选择所使用油墨的组合方式:</p> <p>选择所使用油墨的组合方式:</p>
<p>选择所使用油墨的组合方式:</p> <p>选择所使用油墨的组合方式:</p>
...@@ -7,7 +7,7 @@ export default { ...@@ -7,7 +7,7 @@ export default {
<p>仅彩色油墨:在白底或淡色底上打印彩色图像。</p> <p>仅彩色油墨:在白底或淡色底上打印彩色图像。</p>
<p>仅黑色油墨:只使用黑色油墨,打印黑白图像。</p> <p>仅黑色油墨:只使用黑色油墨,打印黑白图像。</p>
`, `,
bEcoMode:` bEcoMode: `
<b>模式</b> <b>模式</b>
<p>自动调整底材的白色油墨量,抑制整体的油墨消耗量。</p> <p>自动调整底材的白色油墨量,抑制整体的油墨消耗量。</p>
<p>但是,根据颜色,完成品的亮度有时会略微降低。</p> <p>但是,根据颜色,完成品的亮度有时会略微降低。</p>
...@@ -95,7 +95,7 @@ export default { ...@@ -95,7 +95,7 @@ export default {
<p>使亮的颜色更亮、暗的颜色更暗,从而给呆板的图像增加颜色强弱。</p> <p>使亮的颜色更亮、暗的颜色更暗,从而给呆板的图像增加颜色强弱。</p>
`, `,
iCyanBalance : iCyanBalance:
` `
<b>青色</b> <b>青色</b>
<p>调整青色油墨量。</p> <p>调整青色油墨量。</p>
...@@ -103,7 +103,7 @@ export default { ...@@ -103,7 +103,7 @@ export default {
<p>如果减少值,整体会偏红。</p> <p>如果减少值,整体会偏红。</p>
`, `,
iMagentaBalance : iMagentaBalance:
` `
<b>红色</b> <b>红色</b>
<p>调整青色油墨量。</p> <p>调整青色油墨量。</p>
...@@ -111,7 +111,7 @@ export default { ...@@ -111,7 +111,7 @@ export default {
<p>如果减少值,整体会偏绿。</p> <p>如果减少值,整体会偏绿。</p>
`, `,
iYellowBalance : iYellowBalance:
` `
<b>黄色</b> <b>黄色</b>
<p>调整黄色油墨量。</p> <p>调整黄色油墨量。</p>
...@@ -119,7 +119,7 @@ export default { ...@@ -119,7 +119,7 @@ export default {
<p>如果减少值,整体会偏蓝。</p> <p>如果减少值,整体会偏蓝。</p>
`, `,
iBlackBalance : iBlackBalance:
` `
<b>黑色</b> <b>黑色</b>
<p>调整黑色油墨量。</p> <p>调整黑色油墨量。</p>
...@@ -128,19 +128,19 @@ export default { ...@@ -128,19 +128,19 @@ export default {
`, `,
printTime : printTime:
` `
<b>打印时间</b> <b>打印时间</b>
<p>“x1”以按照高光5打印的时间作为标准。</p> <p>“x1”以按照高光5打印的时间作为标准。</p>
<p>提高高光增加了白色油墨量时打印时间变长。</p> <p>提高高光增加了白色油墨量时打印时间变长。</p>
`, `,
whiteInk : whiteInk:
` `
<b>白色油墨量</b> <b>白色油墨量</b>
<p>高光5的油墨量为“400%",以此作为标准。</p> <p>高光5的油墨量为“400%",以此作为标准。</p>
<p>实际油墨消耗量取决于打印图像内的色彩。请将其当作油墨消耗量的标准。</p> <p>实际油墨消耗量取决于打印图像内的色彩。请将其当作油墨消耗量的标准。</p>
`, `,
byInkVolume : byInkVolume:
` `
<b>油墨量</b> <b>油墨量</b>
<p>减少彩色油墨量以防止油墨渗透。</p> <p>减少彩色油墨量以防止油墨渗透。</p>
...@@ -150,11 +150,20 @@ export default { ...@@ -150,11 +150,20 @@ export default {
<p>6-4 用于薄平纹织物和棉/聚酯纤维/聚氨酯混纺。</p> <p>6-4 用于薄平纹织物和棉/聚酯纤维/聚氨酯混纺。</p>
<p>3-1用于聚酯纤维针织物和没有吸水性合成纤维。</p> <p>3-1用于聚酯纤维针织物和没有吸水性合成纤维。</p>
`, `,
bUniPrint : bUniPrint:
` `
<b>单向打印</b> <b>单向打印</b>
<p>将打印方向固定为一个方向。</p> <p>将打印方向固定为一个方向。</p>
<p>优先执行来自打印机操作面板的指定,仅在打印机的设置是[自动]时有效。</p> <p>优先执行来自打印机操作面板的指定,仅在打印机的设置是[自动]时有效。</p>
`,
byDoublePrint:
`
<b>2次打印</b>
<p>设置为0时,打印1次。</p>
<p>设置为1~3时,分2次打印。</p>
<p>分2次打印时,无需增加油墨消耗量也可期待提高黑度。</p>
<p>设置值越大,从第1次打印开始到第2次打印开始的间隔越长,可以更加期待提高黑度效果。</p>
` `
} };
\ No newline at end of file \ No newline at end of file
...@@ -4,144 +4,155 @@ export default { ...@@ -4,144 +4,155 @@ export default {
data() { data() {
return { return {
rules: { rules: {
company: [{validator: this.validatePass, required: true, trigger: 'blur'}], company: [{ validator: this.validatePass, required: true, trigger: "blur" }],
loginName: [{message: '请输入用户名', required: true, trigger: 'blur'}], loginName: [{ message: "请输入用户名", required: true, trigger: "blur" }],
password: [{message: '请输入密码', required: true, trigger: 'blur'}], password: [{ message: "请输入密码", required: true, trigger: "blur" }]
}, },
companyList: [], companyList: [],
userList: [], userList: [],
company: null, company: null,
authorityVisible: false, authorityVisible: false,
remember: true, remember: true,
authorityForm: {}, authorityForm: {},
form: { form: {
loginName: '', loginName: "",
user: '', user: "",
company: '', company: "",
password: '' password: ""
}
} }
};
}, },
created() { created() {
console.log(this.$dataStore, 'this.$dataStore') // this.len = Object.keys(this.$dataStore.store).length
this.company = this.$dataStore.get('company') console.log(this.$dataStore, "this.$dataStore");
this.userList = this.$dataStore.get('userList') || [] // this.$dataStore.set('deviceIdceshi03','b27a0777451f789521f4240e99f65913')
this.company = this.$dataStore.get("company");
this.userList = this.$dataStore.get("userList") || [];
if (this.company) { if (this.company) {
this.form.company = this.company.domain this.form.company = this.company.domain;
} }
// if (user) { // if (user) {
// return this.$router.push('/design') // return this.$router.push('/design')
// } // }
this.getCompanyList() this.getCompanyList();
}, },
mounted() { mounted() {
document.addEventListener('keyup', this.keyUp) document.addEventListener("keyup", this.keyUp);
}, },
beforeDestroy() { beforeDestroy() {
document.removeEventListener('keyup', this.keyUp) document.removeEventListener("keyup", this.keyUp);
}, },
methods: { methods: {
keyUp(e) { keyUp(e) {
console.log(e) console.log(e);
if (e.keyCode === 13) { if (e.keyCode === 13) {
this.login() this.login();
} }
}, },
submitAuthority() { submitAuthority() {
this.$refs.authorityForm.validate((v) => { this.$refs.authorityForm.validate((v) => {
if (v) { if (v) {
this.$api.post('/commitApply', { this.$api.post("/commitApply", {
...this.authorityForm, ...this.authorityForm,
...this.form ...this.form
}, { }, {
headers: { headers: {
'company': this.form.company + '.jomalls.com' "company": this.form.company + ".jomalls.com"
} }
}).then((res) => { }).then((res) => {
if (res.code === 200) { if (res.code === 200) {
this.authorityVisible = false this.authorityVisible = false;
this.$message.success('申请提交成功') this.$message.success("申请提交成功");
this.$dataStore.set('deviceId' + this.form.loginName, res.data.id) this.$dataStore.set("deviceId" + this.form.loginName, res.data.id);
} }
}) });
} }
}) });
}, },
validatePass(rule, value, callback) { validatePass(rule, value, callback) {
if (!value || value === '') { if (!value || value === "") {
return callback(new Error('请输入客户(例如demo)')); return callback(new Error("请输入客户(例如demo)"));
} }
let item = this.companyList.find(item => item.domain.replace('.jomalls.com', '') === value) let item = this.companyList.find(item => item.domain.replace(".jomalls.com", "") === value);
if (item) { if (item) {
return callback() return callback();
} else { } else {
return callback(new Error('未查找到该客户')) return callback(new Error("未查找到该客户"));
} }
}, },
async login() { async login() {
// if (this.form.auth) {
// this.$dataStore.set(this.form.auth.split(",")[0], this.form.auth.split(",")[1]);
// console.log("存储成功");
// console.log(this.$dataStore.store);
//
// }
this.$refs.formRef.validate(async valid => { this.$refs.formRef.validate(async valid => {
if (valid) { if (valid) {
let f = JSON.parse(JSON.stringify(this.form)) let f = JSON.parse(JSON.stringify(this.form));
if (f.company.split('.').length === 1) { if (f.company.split(".").length === 1) {
f.company = f.company + '.jomalls.com' f.company = f.company + ".jomalls.com";
} }
if (!f.deviceId) { if (!f.deviceId) {
f.deviceId = this.$dataStore.get('deviceId' + this.form.loginName) f.deviceId = this.$dataStore.get("deviceId" + this.form.loginName);
} }
if (!f.deviceId) delete f.deviceId if (!f.deviceId) delete f.deviceId;
let {data, code, message} = await this.$api.post('/login', f) let { data, code, message } = await this.$api.post("/login", f);
if (code === 411) { if (code === 411) {
this.authorityVisible = true this.authorityVisible = true;
this.authorityForm = {} this.authorityForm = {};
return this.$message.error(message) return this.$message.error(message);
} }
data = { data = {
...data.sysUser, ...data.sysUser,
...{ ...{
token: data.token token: data.token
} }
} };
delete data.sysMenus delete data.sysMenus;
delete data.sysUser delete data.sysUser;
let item = this.companyList.find(item => item.domain === f.company) let item = this.companyList.find(item => item.domain === f.company);
console.log(item, 111222) console.log(item, 111222);
this.$dataStore.set('user', data) this.$dataStore.set("user", data);
this.$dataStore.set('company', item) this.$dataStore.set("company", item);
if (this.remember) { if (this.remember) {
let userList = this.$dataStore.get('userList') let userList = this.$dataStore.get("userList");
if (userList && !userList.find(el => el.loginName === f.loginName && el.company === f.company)) { if (userList && !userList.find(el => el.loginName === f.loginName && el.company === f.company)) {
userList.push(f) userList.push(f);
} else { } else {
userList = [f] userList = [f];
} }
this.$dataStore.set('userList', userList) this.$dataStore.set("userList", userList);
} }
await this.$router.push('/design') await this.$router.push("/design");
} }
}) });
}, },
userChange(v) { userChange(v) {
if (v === '') { if (v === "") {
this.form.deviceId = '' this.form.deviceId = "";
return return;
} }
console.log(this.userList, v) console.log(this.userList, v);
this.form.company = this.userList[v].company.split('.')[0] this.form.company = this.userList[v].company.split(".")[0];
this.form.loginName = this.userList[v].loginName this.form.loginName = this.userList[v].loginName;
this.form.password = this.userList[v].password this.form.password = this.userList[v].password;
this.form.deviceId = this.userList[v].deviceId this.form.deviceId = this.userList[v].deviceId;
}, },
async getCompanyList() { async getCompanyList() {
let {data} = await this.$api.get('/getCompanyList') let { data } = await this.$api.get("/getCompanyList");
this.companyList = data.records this.companyList = data.records;
} }
} }
} };
</script> </script>
<template> <template>
...@@ -177,6 +188,10 @@ export default { ...@@ -177,6 +188,10 @@ export default {
<el-input placeholder="密码" show-password prefix-icon="el-icon-lock" type="password" v-model="form.password" <el-input placeholder="密码" show-password prefix-icon="el-icon-lock" type="password" v-model="form.password"
clearable></el-input> clearable></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item v-if="len===0" prop="授权信息">-->
<!-- <el-input placeholder="授权信息" prefix-icon="el-icon-lock" v-model="form.auth"-->
<!-- clearable></el-input>-->
<!-- </el-form-item>-->
<div class="check"> <div class="check">
<el-checkbox v-model="remember">记住账号</el-checkbox> <el-checkbox v-model="remember">记住账号</el-checkbox>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment