zhangqiOMG 3 年之前
父节点
当前提交
f34859231a

+ 0 - 4
src/HDrpManagement/projectStage/modules/stageDetail copy.vue

@@ -227,10 +227,6 @@ export default {
   cursor: pointer;
   background: #f1f2f3;
 }
-.active__stage {
-  background: #3874f6;
-  color:#fff
-}
 .stage__panel > div {
     transform: skewX(45deg);
   }

+ 2 - 2
src/SDrpManagement/Products/modules/Select.vue

@@ -75,14 +75,14 @@ export default {
 }
 .class-item{
   margin-right: 20px;
-  color: #8491a9;
+  color: #8b96ac;
   cursor: pointer;
   transition: .2s all linear;
   font-size: 13px;
   font-weight: 400;
 }
 .act{
-  color:red;
+  color:#666;
 }
 .border-bottom{
   border-bottom: 1px solid #e3e5ea;

+ 3 - 0
src/components/normal-basic-layout/index.vue

@@ -244,6 +244,9 @@ export default {
 
 </script>
 <style>
+ .layout_search__panel .el-input__icon {
+  line-height: 40px !important;
+}
 .layout-header-panel .el-input-group__append, .el-input-group__prepend{
   background-color: #fff !important;
   color: #999 !important;

+ 3 - 1
src/components/print/index.vue

@@ -56,8 +56,10 @@ export default {
       let obj = this.panel.panels[0].printElements
       obj.forEach(element => {
         if (element.printElementType.type === 'text') {
-          this.printData[element.options.field] = res.data.data['dataset'+ element.options.sys_printdatasetid][0][element.options.field]
+           element.options.sys_printdatasetid?this.printData[element.options.field] = res.data.data['dataset'+ element.options.sys_printdatasetid][0][element.options.field]:""
         } else {
+          
+          console.log(element.options.sys_printdatasetid)
           this.printData[element.options.field] = res.data.data['dataset'+ element.options.sys_printdatasetid]
         }
       })

+ 39 - 0
src/hiprint/etypes/default-etyps-provider.js

@@ -22,6 +22,45 @@ export default function (hiprint) {
             data: "155123456789",
             type: "longText"
           },
+          {
+            tid: "defaultModule.customTable",
+            field: "table",
+            title: "表格",
+            type: "table",
+            groupFooterFormatter: function (group, option) {
+              return "这里自定义统计脚信息";
+            },
+            columns: [
+              [
+                {
+                  title: "行号",
+                  fixed: true,
+                  rowspan: 1,
+                  field: "id",
+                  width: 70
+                },
+                {
+                  title: "行号1",
+                  fixed: true,
+                  field: "id",
+                  width: 70
+                }
+              ]
+            ],
+            editable: true,
+            columnDisplayEditable: true,//列显示是否能编辑
+            columnDisplayIndexEditable: true,//列顺序显示是否能编辑
+            columnTitleEditable: true,//列标题是否能编辑
+            columnResizable: true, //列宽是否能调整
+            columnAlignEditable: true,//列对齐是否调整
+            isEnableEditField: true, //编辑字段
+            isEnableContextMenu: true, //开启右键菜单 默认true
+            isEnableInsertRow: true, //插入行
+            isEnableDeleteRow: true, //删除行
+            isEnableInsertColumn: true, //插入列
+            isEnableDeleteColumn: true, //删除列
+            isEnableMergeCell: true, //合并单元格
+          },
           {
             tid: "defaultModule.table",
             field: "table",

+ 7 - 8
src/views/printmodel/design/components/bindData.vue

@@ -6,7 +6,7 @@
     </el-tabs>
     <div v-if="activeName === 'first'">
       <div v-for="(item,idx) in panels" :key="idx" class="mt-10">
-        <div v-if="item.printElementType.type === 'text'">
+        <div v-if="item.printElementType.type === 'text' || item.printElementType.type === 'longText'">
           <p class="preview__item">{{item.options.title}}</p>
           <el-select size="mini" v-model="item.options.sys_printdatasetid" placeholder="请选择" @click.native="act_DataBaseID = idx">
             <el-option
@@ -29,7 +29,7 @@
           </el-select>
         </div>
         <div v-if="item.printElementType.type === 'table'">
-          <p style="font-size:12px">表格数据</p>
+          <p style="font-size:12px;color:#999;margin-bottom:10px">表格数据:{{item.options.field}}</p>
           <div>
             <el-select size="mini" v-model="item.options.sys_printdatasetid" placeholder="请选择" @click.native="act_DataBaseID = idx" @change="queryDataBaseDetail">
               <el-option
@@ -37,7 +37,7 @@
                 :key="i.sys_printdatasetid"
                 :label="i.datasetname"
                 :value="i.sys_printdatasetid"
-                @click.native="setTableField(item.options.field = `dataset${i.sys_printdatasetid}`)">
+                @click.native="setTableField(item.options.field = `dataset${idx}`)">
               </el-option>
             </el-select>&nbsp;
             <div v-for="td in item.options.columns[0]" :key="td.index">
@@ -55,7 +55,7 @@
           </div>
         </div>
       </div>
-      <el-button type="primary" size="mini" @click="saveJson">保 存</el-button>
+      <!-- <el-button type="primary" size="mini" @click="saveJson">保 存</el-button> -->
     </div>
     <div v-else>
       <el-tag style="margin:0 10px 10px 0" type="danger" v-for="item in databastlist" :key="item.index" :disable-transitions="true" effect="dark" size="small" @close="deleteDatabase(item)" closable> {{item.datasetname}}</el-tag>
@@ -69,7 +69,7 @@
 </template>
 
 <script>
-
+import panel from '../../modules/mode.js'
 export default {
   props:['temp','modeData'],
   computed:{
@@ -89,14 +89,12 @@ export default {
       databastlist:[],
       sys_printdataset:[],
       act_DataBaseID:null,
-      modeData:{},
       database:{}
     }
   },
   methods:{
     onDesigned () {},
     async saveJson () {
-      console.log(this.modeData)
       this.template.panels[0].printElements = this.panels
       const res = await this.$api.requested({
         "id": 20221121160001,
@@ -200,7 +198,8 @@ export default {
   margin-left: -1px;
 }
 .binddata__panel{
-  height: 600px;
+  height: 90vh;
+  min-height: 800px;
   overflow-y:scroll ;
 }
 </style>

+ 14 - 6
src/views/printmodel/design/index.vue

@@ -38,7 +38,7 @@
         </el-popconfirm>
 
         <el-button size="small" type="primary" @click="exportJson">
-          创建数据字段
+          保存
         </el-button>
       </div>
       <!-- <div style="margin-bottom: 10px">
@@ -161,9 +161,9 @@
                 </el-col>
                 <el-col :span="12" class="drag_item_box" tid="defaultModule.text">
                   <div>
-                    <a class="ep-draggable-item" tid="defaultModule.customText" style>
+                    <a class="ep-draggable-item" tid="defaultModule.customTable" style>
                       <span class="glyphicon glyphicon-text-width" aria-hidden="true"></span>
-                      <p class="glyphicon-class">自定义</p>
+                      <p class="glyphicon-class">简单表格</p>
                     </a>
                   </div>
                 </el-col>
@@ -223,7 +223,7 @@
       </el-col>
     </el-row>
     <div v-drag class="preview">
-      <bindData :temp="jsonOut" :modeData="modeData"></bindData>
+      <bindData ref="bind" :temp="jsonOut" :modeData="modeData"></bindData>
     </div>
   </el-card>
 </template>
@@ -496,6 +496,7 @@ export default {
         onDataChanged: (type, json) => {
           console.log(type); // 新增、移动、删除、修改(参数调整)、大小、旋转
           console.log(json); // 返回 template
+          that.jsonOut = JSON.stringify(json)
         },
         onUpdateError: (e) => {
           console.log(e);
@@ -597,7 +598,7 @@ export default {
       this.$refs.preView.show(hiprintTemplate, printData)
     },
     onlyPrint() {
-      let hiprintTemplate = this.$print(undefined, this.panel, printData, {}, {
+      let hiprintTemplate = this.$print(undefined, this.panel, {}, {}, {
         styleHandler: () => {
           let css = '<link href="http://hiprint.io/Content/hiprint/css/print-lock.css" media="print" rel="stylesheet">';
           return css
@@ -789,7 +790,9 @@ export default {
     exportJson() {
       if (hiprintTemplate) {
         this.jsonOut = JSON.stringify(hiprintTemplate.getJson() || {})
-        // console.log(this.jsonOut)
+        setTimeout(() => {
+          this.$refs['bind'].saveJson()
+        }, 500);
       }
     },
     setElsAlign(e) {
@@ -807,6 +810,11 @@ export default {
     },
     updateFontWeight() {
       hiprintTemplate.updateOption('fontWeight', 'bolder');
+    },
+    test () {
+      var hiprintTemplate = new hiprint.PrintTemplate();
+      var panel = hiprintTemplate.addPrintPanel({ width: 100, height: 130, paperFooter: 340, paperHeader: 10 });
+      panel.addPrintTable({ options: { width: 252, height: 35, top: 130, left: 20, content: $('#testTable').html() } });
     }
   },
   directives: {

+ 328 - 33
src/views/printmodel/modules/mode.js

@@ -1,38 +1,333 @@
 const panel = {
-    "panels": [
-        {
-          "index": 0,
-          "paperType": "A4",
-          "height": 297,
-          "width": 210,
-          "paperHeader": 0,
-          "paperFooter": 841.8897637795277,
-          "printElements": [
-            {
-              "options": {
-                "left": 231,
-                "top": 21,
-                "height": 9.75,
-                "width": 120,
-                "title": "经销项目协议",
-                "coordinateSync": false,
-                "widthHeightSync": false,
-                "fontSize": 18,
-                "qrCodeLevel": 0,
-                "right": 350.25,
-                "bottom": 30,
-                "vCenter": 290.25,
-                "hCenter": 25.125
-              },
-              "printElementType": {
-                "title": "文本",
-                "type": "text"
-              }
-            }
-          ],
-          "topOffset": 30
+  "panels": [
+    {
+      "index": 0,
+      "paperType": "A4",
+      "height": 297,
+      "width": 210,
+      "paperHeader": 0,
+      "paperFooter": 841.8897637795277,
+      "printElements": [
+        {
+          "options": {
+            "left": 231,
+            "top": 21,
+            "height": 9.75,
+            "width": 120,
+            "hCenter": 25.875,
+            "bottom": 30.75,
+            "coordinateSync": false,
+            "right": 351,
+            "title": "购  销  合  同",
+            "qrCodeLevel": 0,
+            "fontSize": 18,
+            "widthHeightSync": false,
+            "vCenter": 291
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
+        },
+        {
+          "options": {
+            "left": 337.5,
+            "top": 66,
+            "height": 9.75,
+            "width": 120,
+            "hCenter": 71.625,
+            "bottom": 76.5,
+            "coordinateSync": false,
+            "widthHeightSync": false,
+            "right": 456.75,
+            "title": "合同编号",
+            "qrCodeLevel": 0,
+            "vCenter": 396.75
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
+        },
+        {
+          "options": {
+            "left": 33,
+            "top": 66,
+            "height": 9.75,
+            "width": 120,
+            "hCenter": 70.875,
+            "bottom": 75.75,
+            "coordinateSync": false,
+            "widthHeightSync": false,
+            "right": 150.75,
+            "title": "采购方",
+            "qrCodeLevel": 0,
+            "vCenter": 90.75
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
+        },
+        {
+          "options": {
+            "left": 33,
+            "top": 96,
+            "height": 9.75,
+            "width": 120,
+            "hCenter": 100.875,
+            "bottom": 105.75,
+            "coordinateSync": false,
+            "right": 153,
+            "widthHeightSync": false,
+            "title": "供应方",
+            "vCenter": 93,
+            "qrCodeLevel": 0
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
+        },
+        {
+          "options": {
+            "left": 337.5,
+            "top": 96,
+            "height": 9.75,
+            "width": 120,
+            "hCenter": 100.125,
+            "bottom": 105,
+            "coordinateSync": false,
+            "widthHeightSync": false,
+            "right": 457.5,
+            "title": "签定地点",
+            "qrCodeLevel": 0,
+            "vCenter": 397.5
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
+        },
+        {
+          "options": {
+            "left": 33,
+            "top": 129,
+            "height": 9.75,
+            "width": 120,
+            "hCenter": 130.125,
+            "bottom": 135,
+            "coordinateSync": false,
+            "right": 152.25,
+            "title": "项目名称",
+            "qrCodeLevel": 0,
+            "widthHeightSync": false,
+            "vCenter": 92.25,
+            "fontWeight": "bold"
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
+        },
+        {
+          "options": {
+            "left": 337.5,
+            "top": 129,
+            "height": 9.75,
+            "width": 120,
+            "hCenter": 133.875,
+            "bottom": 138.75,
+            "coordinateSync": false,
+            "widthHeightSync": false,
+            "right": 458.25,
+            "title": "签定时间",
+            "qrCodeLevel": 0,
+            "vCenter": 398.25
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
+        },
+        {
+          "options": {
+            "left": 33,
+            "top": 171,
+            "height": 9.75,
+            "width": 352.5,
+            "hCenter": 175.125,
+            "bottom": 180,
+            "coordinateSync": false,
+            "widthHeightSync": false,
+            "right": 386.25,
+            "title": "1.产品名称、型号规格、数量、单价、金额、交货期限",
+            "qrCodeLevel": 0,
+            "vCenter": 210
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
+        },
+        {
+          "options": {
+            "left": 33,
+            "top": 192,
+            "height": 72,
+            "width": 538.5,
+            "hCenter": 227.25,
+            "textAlign": "center",
+            "bottom": 263.25,
+            "coordinateSync": false,
+            "right": 582.25,
+            "field": "table2",
+            "widthHeightSync": false,
+            "vCenter": 307.25,
+            "columns": [
+              [
+                {
+                  "width": 68.53636363636363,
+                  "title": "序号",
+                  "field": "id",
+                  "checked": true,
+                  "columnId": "id",
+                  "fixed": false,
+                  "rowspan": 1,
+                  "colspan": 1,
+                  "tableColumnHeight": 30,
+                  "tableTextType": "text",
+                  "tableBarcodeMode": "CODE128A",
+                  "tableQRCodeLevel": 0
+                },
+                {
+                  "width": 71.26808707009951,
+                  "title": "货物名称",
+                  "field": "",
+                  "checked": true,
+                  "columnId": "",
+                  "fixed": false,
+                  "rowspan": 1,
+                  "colspan": 1,
+                  "tableColumnHeight": 30,
+                  "tableTextType": "text",
+                  "tableBarcodeMode": "CODE128A",
+                  "tableQRCodeLevel": 0
+                },
+                {
+                  "width": 76.4773382045342,
+                  "title": "规格",
+                  "field": "",
+                  "checked": true,
+                  "columnId": "",
+                  "fixed": false,
+                  "rowspan": 1,
+                  "colspan": 1,
+                  "tableColumnHeight": 30,
+                  "tableTextType": "text",
+                  "tableBarcodeMode": "CODE128A",
+                  "tableQRCodeLevel": 0
+                },
+                {
+                  "width": 86.26904641213642,
+                  "title": "数量",
+                  "checked": true,
+                  "fixed": false,
+                  "rowspan": 1,
+                  "colspan": 1,
+                  "tableColumnHeight": "30",
+                  "tableTextType": "text",
+                  "tableBarcodeMode": "CODE128A",
+                  "tableQRCodeLevel": 0,
+                  "tableSummaryTitle": true,
+                  "tableSummary": "count"
+                },
+                {
+                  "width": 84.28552174312941,
+                  "title": "单价",
+                  "checked": true,
+                  "fixed": false,
+                  "rowspan": 1,
+                  "colspan": 1,
+                  "tableColumnHeight": 30,
+                  "tableTextType": "text",
+                  "tableBarcodeMode": "CODE128A",
+                  "tableQRCodeLevel": 0
+                },
+                {
+                  "width": 70.6354297675926,
+                  "title": "金 额",
+                  "checked": true,
+                  "fixed": false,
+                  "rowspan": 1,
+                  "colspan": 1,
+                  "tableColumnHeight": "30",
+                  "tableTextType": "text",
+                  "tableBarcodeMode": "CODE128A",
+                  "tableQRCodeLevel": 0,
+                  "tableSummaryTitle": true,
+                  "tableSummary": "sum"
+                },
+                {
+                  "width": 81.02821316614418,
+                  "title": "交货期限",
+                  "checked": true,
+                  "fixed": false,
+                  "rowspan": 1,
+                  "colspan": 1,
+                  "tableColumnHeight": "30",
+                  "tableTextType": "text",
+                  "tableBarcodeMode": "CODE128A",
+                  "tableQRCodeLevel": 0,
+                  "tableSummaryTitle": true,
+                  "tableSummary": ""
+                }
+              ]
+            ]
+          },
+          "printElementType": {
+            "title": "表格",
+            "type": "table",
+            "editable": true,
+            "columnDisplayEditable": true,
+            "columnDisplayIndexEditable": true,
+            "columnTitleEditable": true,
+            "columnResizable": true,
+            "columnAlignEditable": true,
+            "isEnableEditField": true,
+            "isEnableContextMenu": true,
+            "isEnableInsertRow": true,
+            "isEnableDeleteRow": true,
+            "isEnableInsertColumn": true,
+            "isEnableDeleteColumn": true,
+            "isEnableMergeCell": true
+          }
+        },
+        {
+          "options": {
+            "left": 33,
+            "top": 259.5,
+            "height": 9.75,
+            "width": 396,
+            "hCenter": 266.625,
+            "bottom": 271.5,
+            "coordinateSync": false,
+            "right": 429,
+            "title": "备注:1、出货资料一式**份,资料随货同时到现场,或提前邮寄(地址:****)。)。",
+            "qrCodeLevel": 0,
+            "widthHeightSync": false,
+            "vCenter": 231,
+            "fontWeight": "bold"
+          },
+          "printElementType": {
+            "title": "文本",
+            "type": "text"
+          }
         }
-      ]
+      ],
+      "topOffset": 30
+    }
+  ]
 }
 export default panel