yangg vor 4 Monaten
Ursprung
Commit
394ae778ea
44 geänderte Dateien mit 1087 neuen und 32 gelöschten Zeilen
  1. 1 1
      .env.development
  2. 33 1
      dist/ckeditor/config.js
  3. 22 0
      dist/ckeditor/plugins/lineheight/LICENSE
  4. 2 0
      dist/ckeditor/plugins/lineheight/README.md
  5. 3 0
      dist/ckeditor/plugins/lineheight/lang/LANG.js
  6. 3 0
      dist/ckeditor/plugins/lineheight/lang/ar.js
  7. 3 0
      dist/ckeditor/plugins/lineheight/lang/de.js
  8. 3 0
      dist/ckeditor/plugins/lineheight/lang/en.js
  9. 3 0
      dist/ckeditor/plugins/lineheight/lang/es.js
  10. 3 0
      dist/ckeditor/plugins/lineheight/lang/fr.js
  11. 3 0
      dist/ckeditor/plugins/lineheight/lang/ko.js
  12. 3 0
      dist/ckeditor/plugins/lineheight/lang/pt.js
  13. 81 0
      dist/ckeditor/plugins/lineheight/plugin.js
  14. 30 0
      dist/ckeditor/plugins/lineheight/readme.txt
  15. BIN
      dist/ckeditor/plugins/spacingsliders/icons/spacingsliders.png
  16. 7 0
      dist/ckeditor/plugins/spacingsliders/lang/en.js
  17. 7 0
      dist/ckeditor/plugins/spacingsliders/lang/ko.js
  18. 7 0
      dist/ckeditor/plugins/spacingsliders/lang/uk.js
  19. 287 0
      dist/ckeditor/plugins/spacingsliders/plugin.js
  20. 28 0
      dist/ckeditor/plugins/spacingsliders/skins/default.css
  21. 0 0
      dist/index.html
  22. 0 0
      dist/static/css/chunk-6debddaa.20b20c9a.css
  23. 0 0
      dist/static/js/app.5a9bcb81.js
  24. 0 0
      dist/static/js/chunk-6debddaa.634e254f.js
  25. 33 1
      public/ckeditor/config.js
  26. 22 0
      public/ckeditor/plugins/lineheight/LICENSE
  27. 2 0
      public/ckeditor/plugins/lineheight/README.md
  28. 3 0
      public/ckeditor/plugins/lineheight/lang/LANG.js
  29. 3 0
      public/ckeditor/plugins/lineheight/lang/ar.js
  30. 3 0
      public/ckeditor/plugins/lineheight/lang/de.js
  31. 3 0
      public/ckeditor/plugins/lineheight/lang/en.js
  32. 3 0
      public/ckeditor/plugins/lineheight/lang/es.js
  33. 3 0
      public/ckeditor/plugins/lineheight/lang/fr.js
  34. 3 0
      public/ckeditor/plugins/lineheight/lang/ko.js
  35. 3 0
      public/ckeditor/plugins/lineheight/lang/pt.js
  36. 81 0
      public/ckeditor/plugins/lineheight/plugin.js
  37. 30 0
      public/ckeditor/plugins/lineheight/readme.txt
  38. BIN
      public/ckeditor/plugins/spacingsliders/icons/spacingsliders.png
  39. 7 0
      public/ckeditor/plugins/spacingsliders/lang/en.js
  40. 7 0
      public/ckeditor/plugins/spacingsliders/lang/ko.js
  41. 7 0
      public/ckeditor/plugins/spacingsliders/lang/uk.js
  42. 287 0
      public/ckeditor/plugins/spacingsliders/plugin.js
  43. 28 0
      public/ckeditor/plugins/spacingsliders/skins/default.css
  44. 30 29
      src/views/project/components/dataList.vue

+ 1 - 1
.env.development

@@ -4,7 +4,7 @@ port = 8080
 # base api
 VUE_APP_BASE_AI_API='https://ylaiapi.raycos.com.cn'
 #VUE_APP_BASE_API = 'http://183.195.216.54:8084'
-VUE_APP_BASE_API = 'http://192.168.66.163:8084'
+VUE_APP_BASE_API = 'http://183.195.216.54:8084'
 #192.168.66.187
 #朱:192.168.66.163
 #测试服务器:121.36.251.245

+ 33 - 1
dist/ckeditor/config.js

@@ -43,8 +43,40 @@ config.contentsCss = '/public/ckeditor/custom-ckeditor.css';
 
  // 设置工具栏位置在编辑区域上方
  config.toolbarLocation = 'top';
+ // 添加 lineheight 插件
+ config.extraPlugins = 'lineheight,' + config.extraPlugins;
+    
+ // 配置可选的行间距值
+ config.line_height = '0.5;0.75;1;1.25;1.5;2;2.5;3;4';
 
-
+  // 添加 spacingsliders 插件(注意是小写)
+  var plugins = ['font', 'pagebreak', 'spacingsliders'];
+  config.extraPlugins = plugins.join(',');
+  
+  // 配置 Spacing Sliders 插件
+  config.spacingsliders = {
+	  // 行距配置
+	  lineHeight: {
+		  min: 1,          // 最小值
+		  max: 3,          // 最大值
+		  step: 0.1,       // 步进值
+		  default: 1.15    // 默认值(对应 Word 默认行距)
+	  },
+	  // 段前距离配置
+	  spacingBefore: {
+		  min: 0,          // 最小值(像素)
+		  max: 72,         // 最大值(像素)
+		  step: 1,         // 步进值
+		  default: 0       // 默认值
+	  },
+	  // 段后距离配置
+	  spacingAfter: {
+		  min: 0,
+		  max: 72,
+		  step: 1,
+		  default: 0
+	  }
+  };
 
 // 修改图片上传配置
 config.filebrowserImageUploadUrl = 'http://183.195.216.54:8084/upload/imageNew';

+ 22 - 0
dist/ckeditor/plugins/lineheight/LICENSE

@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Kamlesh Kushwaha
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+

+ 2 - 0
dist/ckeditor/plugins/lineheight/README.md

@@ -0,0 +1,2 @@
+# lineheight
+Ckeditor lineheight plugin repository

+ 3 - 0
dist/ckeditor/plugins/lineheight/lang/LANG.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','{LANGUAGE_CODE}', {
+    title: '{LINE-HEIGHT}'
+} );

+ 3 - 0
dist/ckeditor/plugins/lineheight/lang/ar.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','ar', {
+    title: 'خط الطول'
+} );

+ 3 - 0
dist/ckeditor/plugins/lineheight/lang/de.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','de', {
+    title: 'Zeilenhöhe'
+} );

+ 3 - 0
dist/ckeditor/plugins/lineheight/lang/en.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','en', {
+    title: 'Line Height'
+} );

+ 3 - 0
dist/ckeditor/plugins/lineheight/lang/es.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','es', {
+    title: 'Altura de Línea'
+} );

+ 3 - 0
dist/ckeditor/plugins/lineheight/lang/fr.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','fr', {
+    title: 'Hauteur de Ligne'
+} );

+ 3 - 0
dist/ckeditor/plugins/lineheight/lang/ko.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','ko', {
+    title: '줄 높이'
+} );

+ 3 - 0
dist/ckeditor/plugins/lineheight/lang/pt.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','af', {
+    title: 'linha Altura'
+} );

+ 81 - 0
dist/ckeditor/plugins/lineheight/plugin.js

@@ -0,0 +1,81 @@
+( function() {
+	function addCombo( editor, comboName, styleType, lang, entries, defaultLabel, styleDefinition, order ) {
+		var config = editor.config,style = new CKEDITOR.style( styleDefinition );		
+		var names = entries.split( ';' ),values = [];		
+		var styles = {};
+		for ( var i = 0; i < names.length; i++ ) {
+			var parts = names[ i ];
+			if ( parts ) {
+				parts = parts.split( '/' );
+				var vars = {},name = names[ i ] = parts[ 0 ];
+				vars[ styleType ] = values[ i ] = parts[ 1 ] || name;
+				styles[ name ] = new CKEDITOR.style( styleDefinition, vars );
+				styles[ name ]._.definition.name = name;
+			} else
+				names.splice( i--, 1 );
+		}
+		editor.ui.addRichCombo( comboName, {
+			label: editor.lang.lineheight.title,
+			title: editor.lang.lineheight.title,
+			toolbar: 'styles,' + order,
+			allowedContent: style,
+			requiredContent: style,
+			panel: {
+				css: [ CKEDITOR.skin.getPath( 'editor' ) ].concat( config.contentsCss ),
+				multiSelect: false,
+				attributes: { 'aria-label': editor.lang.lineheight.title }
+			},
+			init: function() {
+				this.startGroup(editor.lang.lineheight.title);
+				for ( var i = 0; i < names.length; i++ ) {
+					var name = names[ i ];					
+					this.add( name, styles[ name ].buildPreview(), name );
+				}
+			},
+			onClick: function( value ) {
+				editor.focus();
+				editor.fire( 'saveSnapshot' );
+				var style = styles[ value ];
+				editor[ this.getValue() == value ? 'removeStyle' : 'applyStyle' ]( style );
+				editor.fire( 'saveSnapshot' );
+			},
+			onRender: function() {
+				editor.on( 'selectionChange', function( ev ) {
+					var currentValue = this.getValue();
+					var elementPath = ev.data.path,elements = elementPath.elements;
+					for ( var i = 0, element; i < elements.length; i++ ) {
+						element = elements[ i ];
+						for ( var value in styles ) {
+							if ( styles[ value ].checkElementMatch( element, true, editor ) ) {
+								if ( value != currentValue )
+									this.setValue( value );
+								return;
+							}
+						}
+					}
+					this.setValue( '', defaultLabel );
+				}, this );
+			},
+			refresh: function() {
+				if ( !editor.activeFilter.check( style ) )
+					this.setState( CKEDITOR.TRISTATE_DISABLED );
+			}
+		} );
+	}
+	CKEDITOR.plugins.add( 'lineheight', {
+		requires: 'richcombo',
+		lang: 'ar,de,en,es,fr,ko,pt',
+		init: function( editor ) {
+			var config = editor.config;
+			addCombo( editor, 'lineheight', 'size', editor.lang.lineheight.title, config.line_height, editor.lang.lineheight.title, config.lineHeight_style, 40 );
+		}
+	} );
+} )();
+CKEDITOR.config.line_height = '1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72';
+CKEDITOR.config.lineHeight_style = {
+	element: 'span',
+	styles: { 'line-height': '#(size)' },
+	overrides: [ {
+		element: 'line-height', attributes: { 'size': null }
+	} ]
+};

+ 30 - 0
dist/ckeditor/plugins/lineheight/readme.txt

@@ -0,0 +1,30 @@
+lineheight
+==========
+
+CKEDITOR Line-height plugin documentation
+----------------------------------------------
+
+Installation Notes:
+
+    Adding plugin into the toolbar:
+    Using CKBuilder is a recommended solution, however, if you have plugins developed by yourself or by third parties, you can add plugins to your local installation manually by following the steps described below:
+    Extract the plugin .zip archive.
+    Copy the plugin files to the plugins folder of your CKEditor installation. Each plugin must be placed in a sub-folder that matches its "technical" name.
+    
+    For example, the lineheight plugin would be installed into this folder: <CKEditor folder>/plugins/lineheight.
+    Check and resolve plugin dependencies. If a plugin needs others to work, you will need to add these manually as well.
+    Enable the plugin. Use the extraPlugins setting to add the plugin to your confiuration:
+
+          config.extraPlugins = 'lineheight';
+          
+Refer this link for configuring the toolbar: http://docs.ckeditor.com/#!/guide/dev_toolbar
+
+
+Customizing the lineheight values in the dropdown
+-------------------------------------------------------
+In order to have custom values of line-height instead of the default, you can add following line in the config.js file:
+        
+        config.line_height="1em;1.1em;1.2em;1.3em;1.4em;1.5em";
+        
+        Here, "em" is the unit of line-height which you can change to "px","%" or any other allowed unit for line-height. 
+        You can also change the numbers based on your requirements. You can have more range or low range , it all depends on your requirements.

BIN
dist/ckeditor/plugins/spacingsliders/icons/spacingsliders.png


+ 7 - 0
dist/ckeditor/plugins/spacingsliders/lang/en.js

@@ -0,0 +1,7 @@
+CKEDITOR.plugins.setLang( 'spacingsliders', 'en', {
+	title: 'Line and Letter Spacing',
+	labels: {
+		lineheight: 'Line Height',
+		letterspacing: 'Letter Spacing'
+	}
+} );

+ 7 - 0
dist/ckeditor/plugins/spacingsliders/lang/ko.js

@@ -0,0 +1,7 @@
+CKEDITOR.plugins.setLang( 'spacingsliders', 'ko', {
+	title: '행간 및 자간',
+	labels: {
+		lineheight: '줄 간격',
+		letterspacing: '글자 간격'
+	}
+} );

+ 7 - 0
dist/ckeditor/plugins/spacingsliders/lang/uk.js

@@ -0,0 +1,7 @@
+CKEDITOR.plugins.setLang('spacingsliders', 'uk', {
+    title: 'Міжрядковий та міжлітерний інтервал',
+    labels: {
+        lineheight: 'Міжрядковий інтервал',
+        letterspacing: 'міжлітерний інтервал'
+    }
+});

+ 287 - 0
dist/ckeditor/plugins/spacingsliders/plugin.js

@@ -0,0 +1,287 @@
+/**
+ * Combined slider controls for adjusting line-height and letter-spacing values.
+ * 
+ * @license Copyright (c) 2018, Green Cat Software - Xavier Cho. All rights reserved.
+ * 
+ * The addon is distributed under the same license terms as the original addon 
+ * which can be found here: https://ckeditor.com/cke4/addon/spacingsliders
+ */
+CKEDITOR.plugins.add( 'spacingsliders', {
+	requires: 'panelbutton,floatpanel',
+	lang: 'en,ko,uk', // %REMOVE_LINE_CORE%
+	icons: 'spacingsliders', // %REMOVE_LINE_CORE%
+	hidpi: false, // %REMOVE_LINE_CORE%
+	init: function( editor ) {
+		var config = editor.config, 
+			lang = editor.lang.spacingsliders;
+
+		var cssPath = this.path + 'skins/default.css';
+
+		var getConfig = function( value, defaultValue) {
+			return value === undefined ? defaultValue : value;
+		};
+
+		var controls = {
+			lineheight: new CKEDITOR.spacingControl( 
+				{
+					name: 'lineheight', 
+					min: getConfig( CKEDITOR.config.lineheight_min, 0 ),
+					max: getConfig( CKEDITOR.config.lineheight_max, 3 ),
+					step: getConfig( CKEDITOR.config.lineheight_step, 0.1 )
+				},
+				editor ),
+			letterspacing: new CKEDITOR.spacingControl( 
+				{
+					name: 'letterspacing', 
+					min: getConfig( CKEDITOR.config.letterspacing_min, -20 ),
+					max: getConfig( CKEDITOR.config.letterspacing_max, 20 )
+				},
+				editor )
+		};
+
+		var styles = [];
+
+		for ( name in controls ) {
+			var control = controls[name];
+			styles.push( control.createStyle() );
+		}
+
+		editor.ui.add( 'spacingsliders', CKEDITOR.UI_PANELBUTTON, {
+			label: lang.title,
+			title: lang.title,
+			modes: {
+				wysiwyg: 1
+			},
+			editorFocus: 0,
+			toolbar: 'styles,' + 40,
+			allowedContent: styles,
+			panel: {
+				css: CKEDITOR.skin.getPath( 'editor' ),
+				attributes: {
+					role: 'listbox',
+					'aria-label': lang.panelTitle
+				}
+			},
+			onBlock: function( panel, block ) {
+				var document = block.element.getDocument();
+
+				document.appendStyleSheet( cssPath );
+				document.getBody().setStyle( 'overflow', 'hidden' );
+
+				block.autoSize = true;
+				block.element.addClass( 'cke_spacingblock' );
+
+				for ( var id in controls ) {
+					controls[id].render( block.element );
+				}
+			},
+			onOpen: function() {
+				var selection = editor.getSelection(),
+					block = selection && selection.getStartElement(),
+					path = editor.elementPath( block );
+
+				for ( var id in controls ) {
+					controls[id].update( path, block );
+				}
+			}
+		});
+	}
+} );
+
+CKEDITOR.spacingControl = CKEDITOR.tools.createClass({
+	$: function( settings, editor ) {
+		this.settings = settings;
+		this.editor = editor;
+		this.definition = editor.config[ 'spacingsliders_' + settings.name + 'Style' ];
+	},
+	proto: {
+		createStyle: function( size ) {
+			var args = size ? { size: size } : undefined;
+			return new CKEDITOR.style( this.definition, args );
+		},
+		getValue: function() {
+			if ( !this.element ) return;
+
+			return this.input.$.value;
+		},
+		setValue: function( value ) {
+			if ( !this.element ) return;
+
+			this.input.$.value = value;
+			this.label.setHtml( value );
+
+			var style = this.createStyle( value );
+			var path = this.editor.elementPath();
+
+			if ( path && style.checkApplicable( path, this.editor ) ) {
+				var selection = this.editor.getSelection();
+				var locked = selection.isLocked;
+
+				if ( locked ) {
+					selection.unlock();
+				}
+
+				this.editor.removeStyle( new CKEDITOR.style( this.definition, { size: 'inherit' } ) );
+
+				if ( value ) {
+					this.editor.applyStyle( style );
+				}
+
+				if ( locked ) {
+					selection.lock();
+				}
+			}
+		},
+		isEnabled: function () {
+			return this.element && this.input.$.disabled !== true;
+		},
+		setEnabled: function ( value ) {
+			if ( !this.element ) return;
+
+			this.input.$.disabled = !value;
+
+			if ( value ) {
+				this.element.removeClass( 'disabled' );
+			} else {
+				this.element.addClass( 'disabled' );
+				this.label.setHtml( '-' );
+				this.input.value = 0;
+			}
+		},
+		render: function( parent ) {
+			var onChange = CKEDITOR.tools.addFunction( function ( value, saveSnapshot ) {
+				this.setValue( value );
+
+				if ( saveSnapshot ) {
+					this.editor.fire( 'saveSnapshot' );
+				}
+			}, this );
+
+			var lang = this.editor.lang.spacingsliders;
+
+			var output = [];
+			var value = 0;
+
+			output.push( '<div id="' );
+			output.push( this.settings.name );
+			output.push( '" class="cke_spacingcontrol" title="">' );
+			output.push( '<label>' );
+			output.push( lang.labels[ this.settings.name ] );
+			output.push( '</label>' );
+			output.push( '<input type="range" ');
+			output.push( ' oninput="CKEDITOR.tools.callFunction( ' );
+			output.push( onChange );
+			output.push( ', this.value );" ' );
+			output.push( ' onchange="CKEDITOR.tools.callFunction( ' );
+			output.push( onChange );
+			output.push( ', this.value, true );" ' );
+			output.push( 'step="' );
+			output.push( this.settings.step || 1 );
+			output.push( '" ' );
+			output.push( 'min="' );
+			output.push( this.settings.min || 0 );
+			output.push( '" ' );
+			output.push( 'max="' );
+			output.push( this.settings.max || 100 );
+			output.push( '" />' );
+			output.push( '<span>' );
+			output.push( value );
+			output.push( '</span>' );
+			output.push( '</div>' );
+
+			parent.appendHtml( output.join( '' ) );
+
+			this.element = parent.findOne( '#' + this.settings.name );
+
+			this.input = parent.findOne( '#' + this.settings.name + ' input' );
+			this.label = parent.findOne( '#' + this.settings.name + ' span' );
+		},
+		update: function( path, block ) {
+			var value = path ? this.definition.getStyleValue( path, block ) : undefined;
+
+			if ( parseFloat( value ) === value ) {
+				var rounded = Math.round( value * 10 ) / 10;
+
+				this.setEnabled( true );
+
+				this.input.$.value = rounded;
+				this.label.setHtml( rounded);
+			} else {
+				this.setEnabled( false );
+			}
+		}
+	}
+});
+
+/**
+ * @cfg [spacingsliders_lineheightStyle=see source]
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.spacingsliders_lineheightStyle = {
+	type: CKEDITOR.STYLE_BLOCK,
+	element: 'div',
+	styles: { 'line-height': '#(size)' },
+	getStyleValue: function( path, block ) {
+		var convert = CKEDITOR.tools.convertToPx;
+
+		var size = convert( block.getComputedStyle( 'font-size' ) );
+		var value = convert( block.getComputedStyle( 'line-height' ) );
+
+		return size ? value / size : 0;
+	}
+};
+
+/**
+ * @cfg [spacingsliders_letterspacingStyle=see source]
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.spacingsliders_letterspacingStyle = {
+	element: 'div',
+	styles: { 'letter-spacing': '#(size)px' },
+	getStyleValue: function( path, block ) {
+		var elem = path.lastElement;
+		var value = elem.getComputedStyle( 'letter-spacing' );
+
+		if ( !/^[-]?[0-9\\.]+([a-z]*)$/.test( value ) ) {
+			return 0;
+		}
+
+		if ( value.startsWith( '-' )) {
+			// CKEDITOR.tools.convertToPx can't calculate a negative value.
+			return CKEDITOR.tools.convertToPx( value.substring( 1 ) ) * -1;
+		} else {
+			return CKEDITOR.tools.convertToPx( value );
+		}
+	}
+};
+
+/**
+ * Minimum value for line height.
+ * @cfg {Number} [lineheight_min=0]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Maximum value for line height.
+ * @cfg {Number} [lineheight_max=4]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Interval (step) to be used for line height control.
+ * @cfg {Number} [lineheight_step=0.1]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Minimum value for letter spacing.
+ * @cfg {Number} [letterspacing_min=-20]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Maximum value for letter spacing.
+ * @cfg {Number} [letterspacing_max=20]
+ * @member CKEDITOR.config
+ */
+

+ 28 - 0
dist/ckeditor/plugins/spacingsliders/skins/default.css

@@ -0,0 +1,28 @@
+.cke_spacingcontrol {
+	font-size: 10pt;
+	display: flex;
+	align-items: center;
+	padding: 0.5em;
+}
+
+.cke_spacingcontrol label, .cke_spacingcontrol span {
+	white-space: nowrap;
+	padding: 0 0.5em;
+	flex: 0;
+}
+
+.cke_spacingcontrol label {
+	flex-basis: 30%;
+}
+
+.cke_spacingcontrol input {
+	flex: 1;
+}
+
+.cke_spacingcontrol span {
+	min-width: 2em;
+}
+
+.cke_spacingcontrol.disabled label, .cke_spacingcontrol.disabled span {
+	opacity: 0.3;
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/index.html


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/css/chunk-6debddaa.20b20c9a.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/app.5a9bcb81.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-6debddaa.634e254f.js


+ 33 - 1
public/ckeditor/config.js

@@ -43,8 +43,40 @@ config.contentsCss = '/public/ckeditor/custom-ckeditor.css';
 
  // 设置工具栏位置在编辑区域上方
  config.toolbarLocation = 'top';
+ // 添加 lineheight 插件
+ config.extraPlugins = 'lineheight,' + config.extraPlugins;
+    
+ // 配置可选的行间距值
+ config.line_height = '0.5;0.75;1;1.25;1.5;2;2.5;3;4';
 
-
+  // 添加 spacingsliders 插件(注意是小写)
+  var plugins = ['font', 'pagebreak', 'spacingsliders'];
+  config.extraPlugins = plugins.join(',');
+  
+  // 配置 Spacing Sliders 插件
+  config.spacingsliders = {
+	  // 行距配置
+	  lineHeight: {
+		  min: 1,          // 最小值
+		  max: 3,          // 最大值
+		  step: 0.1,       // 步进值
+		  default: 1.15    // 默认值(对应 Word 默认行距)
+	  },
+	  // 段前距离配置
+	  spacingBefore: {
+		  min: 0,          // 最小值(像素)
+		  max: 72,         // 最大值(像素)
+		  step: 1,         // 步进值
+		  default: 0       // 默认值
+	  },
+	  // 段后距离配置
+	  spacingAfter: {
+		  min: 0,
+		  max: 72,
+		  step: 1,
+		  default: 0
+	  }
+  };
 
 // 修改图片上传配置
 config.filebrowserImageUploadUrl = 'http://183.195.216.54:8084/upload/imageNew';

+ 22 - 0
public/ckeditor/plugins/lineheight/LICENSE

@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Kamlesh Kushwaha
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+

+ 2 - 0
public/ckeditor/plugins/lineheight/README.md

@@ -0,0 +1,2 @@
+# lineheight
+Ckeditor lineheight plugin repository

+ 3 - 0
public/ckeditor/plugins/lineheight/lang/LANG.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','{LANGUAGE_CODE}', {
+    title: '{LINE-HEIGHT}'
+} );

+ 3 - 0
public/ckeditor/plugins/lineheight/lang/ar.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','ar', {
+    title: 'خط الطول'
+} );

+ 3 - 0
public/ckeditor/plugins/lineheight/lang/de.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','de', {
+    title: 'Zeilenhöhe'
+} );

+ 3 - 0
public/ckeditor/plugins/lineheight/lang/en.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','en', {
+    title: 'Line Height'
+} );

+ 3 - 0
public/ckeditor/plugins/lineheight/lang/es.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','es', {
+    title: 'Altura de Línea'
+} );

+ 3 - 0
public/ckeditor/plugins/lineheight/lang/fr.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','fr', {
+    title: 'Hauteur de Ligne'
+} );

+ 3 - 0
public/ckeditor/plugins/lineheight/lang/ko.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','ko', {
+    title: '줄 높이'
+} );

+ 3 - 0
public/ckeditor/plugins/lineheight/lang/pt.js

@@ -0,0 +1,3 @@
+CKEDITOR.plugins.setLang('lineheight','af', {
+    title: 'linha Altura'
+} );

+ 81 - 0
public/ckeditor/plugins/lineheight/plugin.js

@@ -0,0 +1,81 @@
+( function() {
+	function addCombo( editor, comboName, styleType, lang, entries, defaultLabel, styleDefinition, order ) {
+		var config = editor.config,style = new CKEDITOR.style( styleDefinition );		
+		var names = entries.split( ';' ),values = [];		
+		var styles = {};
+		for ( var i = 0; i < names.length; i++ ) {
+			var parts = names[ i ];
+			if ( parts ) {
+				parts = parts.split( '/' );
+				var vars = {},name = names[ i ] = parts[ 0 ];
+				vars[ styleType ] = values[ i ] = parts[ 1 ] || name;
+				styles[ name ] = new CKEDITOR.style( styleDefinition, vars );
+				styles[ name ]._.definition.name = name;
+			} else
+				names.splice( i--, 1 );
+		}
+		editor.ui.addRichCombo( comboName, {
+			label: editor.lang.lineheight.title,
+			title: editor.lang.lineheight.title,
+			toolbar: 'styles,' + order,
+			allowedContent: style,
+			requiredContent: style,
+			panel: {
+				css: [ CKEDITOR.skin.getPath( 'editor' ) ].concat( config.contentsCss ),
+				multiSelect: false,
+				attributes: { 'aria-label': editor.lang.lineheight.title }
+			},
+			init: function() {
+				this.startGroup(editor.lang.lineheight.title);
+				for ( var i = 0; i < names.length; i++ ) {
+					var name = names[ i ];					
+					this.add( name, styles[ name ].buildPreview(), name );
+				}
+			},
+			onClick: function( value ) {
+				editor.focus();
+				editor.fire( 'saveSnapshot' );
+				var style = styles[ value ];
+				editor[ this.getValue() == value ? 'removeStyle' : 'applyStyle' ]( style );
+				editor.fire( 'saveSnapshot' );
+			},
+			onRender: function() {
+				editor.on( 'selectionChange', function( ev ) {
+					var currentValue = this.getValue();
+					var elementPath = ev.data.path,elements = elementPath.elements;
+					for ( var i = 0, element; i < elements.length; i++ ) {
+						element = elements[ i ];
+						for ( var value in styles ) {
+							if ( styles[ value ].checkElementMatch( element, true, editor ) ) {
+								if ( value != currentValue )
+									this.setValue( value );
+								return;
+							}
+						}
+					}
+					this.setValue( '', defaultLabel );
+				}, this );
+			},
+			refresh: function() {
+				if ( !editor.activeFilter.check( style ) )
+					this.setState( CKEDITOR.TRISTATE_DISABLED );
+			}
+		} );
+	}
+	CKEDITOR.plugins.add( 'lineheight', {
+		requires: 'richcombo',
+		lang: 'ar,de,en,es,fr,ko,pt',
+		init: function( editor ) {
+			var config = editor.config;
+			addCombo( editor, 'lineheight', 'size', editor.lang.lineheight.title, config.line_height, editor.lang.lineheight.title, config.lineHeight_style, 40 );
+		}
+	} );
+} )();
+CKEDITOR.config.line_height = '1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72';
+CKEDITOR.config.lineHeight_style = {
+	element: 'span',
+	styles: { 'line-height': '#(size)' },
+	overrides: [ {
+		element: 'line-height', attributes: { 'size': null }
+	} ]
+};

+ 30 - 0
public/ckeditor/plugins/lineheight/readme.txt

@@ -0,0 +1,30 @@
+lineheight
+==========
+
+CKEDITOR Line-height plugin documentation
+----------------------------------------------
+
+Installation Notes:
+
+    Adding plugin into the toolbar:
+    Using CKBuilder is a recommended solution, however, if you have plugins developed by yourself or by third parties, you can add plugins to your local installation manually by following the steps described below:
+    Extract the plugin .zip archive.
+    Copy the plugin files to the plugins folder of your CKEditor installation. Each plugin must be placed in a sub-folder that matches its "technical" name.
+    
+    For example, the lineheight plugin would be installed into this folder: <CKEditor folder>/plugins/lineheight.
+    Check and resolve plugin dependencies. If a plugin needs others to work, you will need to add these manually as well.
+    Enable the plugin. Use the extraPlugins setting to add the plugin to your confiuration:
+
+          config.extraPlugins = 'lineheight';
+          
+Refer this link for configuring the toolbar: http://docs.ckeditor.com/#!/guide/dev_toolbar
+
+
+Customizing the lineheight values in the dropdown
+-------------------------------------------------------
+In order to have custom values of line-height instead of the default, you can add following line in the config.js file:
+        
+        config.line_height="1em;1.1em;1.2em;1.3em;1.4em;1.5em";
+        
+        Here, "em" is the unit of line-height which you can change to "px","%" or any other allowed unit for line-height. 
+        You can also change the numbers based on your requirements. You can have more range or low range , it all depends on your requirements.

BIN
public/ckeditor/plugins/spacingsliders/icons/spacingsliders.png


+ 7 - 0
public/ckeditor/plugins/spacingsliders/lang/en.js

@@ -0,0 +1,7 @@
+CKEDITOR.plugins.setLang( 'spacingsliders', 'en', {
+	title: 'Line and Letter Spacing',
+	labels: {
+		lineheight: 'Line Height',
+		letterspacing: 'Letter Spacing'
+	}
+} );

+ 7 - 0
public/ckeditor/plugins/spacingsliders/lang/ko.js

@@ -0,0 +1,7 @@
+CKEDITOR.plugins.setLang( 'spacingsliders', 'ko', {
+	title: '행간 및 자간',
+	labels: {
+		lineheight: '줄 간격',
+		letterspacing: '글자 간격'
+	}
+} );

+ 7 - 0
public/ckeditor/plugins/spacingsliders/lang/uk.js

@@ -0,0 +1,7 @@
+CKEDITOR.plugins.setLang('spacingsliders', 'uk', {
+    title: 'Міжрядковий та міжлітерний інтервал',
+    labels: {
+        lineheight: 'Міжрядковий інтервал',
+        letterspacing: 'міжлітерний інтервал'
+    }
+});

+ 287 - 0
public/ckeditor/plugins/spacingsliders/plugin.js

@@ -0,0 +1,287 @@
+/**
+ * Combined slider controls for adjusting line-height and letter-spacing values.
+ * 
+ * @license Copyright (c) 2018, Green Cat Software - Xavier Cho. All rights reserved.
+ * 
+ * The addon is distributed under the same license terms as the original addon 
+ * which can be found here: https://ckeditor.com/cke4/addon/spacingsliders
+ */
+CKEDITOR.plugins.add( 'spacingsliders', {
+	requires: 'panelbutton,floatpanel',
+	lang: 'en,ko,uk', // %REMOVE_LINE_CORE%
+	icons: 'spacingsliders', // %REMOVE_LINE_CORE%
+	hidpi: false, // %REMOVE_LINE_CORE%
+	init: function( editor ) {
+		var config = editor.config, 
+			lang = editor.lang.spacingsliders;
+
+		var cssPath = this.path + 'skins/default.css';
+
+		var getConfig = function( value, defaultValue) {
+			return value === undefined ? defaultValue : value;
+		};
+
+		var controls = {
+			lineheight: new CKEDITOR.spacingControl( 
+				{
+					name: 'lineheight', 
+					min: getConfig( CKEDITOR.config.lineheight_min, 0 ),
+					max: getConfig( CKEDITOR.config.lineheight_max, 3 ),
+					step: getConfig( CKEDITOR.config.lineheight_step, 0.1 )
+				},
+				editor ),
+			letterspacing: new CKEDITOR.spacingControl( 
+				{
+					name: 'letterspacing', 
+					min: getConfig( CKEDITOR.config.letterspacing_min, -20 ),
+					max: getConfig( CKEDITOR.config.letterspacing_max, 20 )
+				},
+				editor )
+		};
+
+		var styles = [];
+
+		for ( name in controls ) {
+			var control = controls[name];
+			styles.push( control.createStyle() );
+		}
+
+		editor.ui.add( 'spacingsliders', CKEDITOR.UI_PANELBUTTON, {
+			label: lang.title,
+			title: lang.title,
+			modes: {
+				wysiwyg: 1
+			},
+			editorFocus: 0,
+			toolbar: 'styles,' + 40,
+			allowedContent: styles,
+			panel: {
+				css: CKEDITOR.skin.getPath( 'editor' ),
+				attributes: {
+					role: 'listbox',
+					'aria-label': lang.panelTitle
+				}
+			},
+			onBlock: function( panel, block ) {
+				var document = block.element.getDocument();
+
+				document.appendStyleSheet( cssPath );
+				document.getBody().setStyle( 'overflow', 'hidden' );
+
+				block.autoSize = true;
+				block.element.addClass( 'cke_spacingblock' );
+
+				for ( var id in controls ) {
+					controls[id].render( block.element );
+				}
+			},
+			onOpen: function() {
+				var selection = editor.getSelection(),
+					block = selection && selection.getStartElement(),
+					path = editor.elementPath( block );
+
+				for ( var id in controls ) {
+					controls[id].update( path, block );
+				}
+			}
+		});
+	}
+} );
+
+CKEDITOR.spacingControl = CKEDITOR.tools.createClass({
+	$: function( settings, editor ) {
+		this.settings = settings;
+		this.editor = editor;
+		this.definition = editor.config[ 'spacingsliders_' + settings.name + 'Style' ];
+	},
+	proto: {
+		createStyle: function( size ) {
+			var args = size ? { size: size } : undefined;
+			return new CKEDITOR.style( this.definition, args );
+		},
+		getValue: function() {
+			if ( !this.element ) return;
+
+			return this.input.$.value;
+		},
+		setValue: function( value ) {
+			if ( !this.element ) return;
+
+			this.input.$.value = value;
+			this.label.setHtml( value );
+
+			var style = this.createStyle( value );
+			var path = this.editor.elementPath();
+
+			if ( path && style.checkApplicable( path, this.editor ) ) {
+				var selection = this.editor.getSelection();
+				var locked = selection.isLocked;
+
+				if ( locked ) {
+					selection.unlock();
+				}
+
+				this.editor.removeStyle( new CKEDITOR.style( this.definition, { size: 'inherit' } ) );
+
+				if ( value ) {
+					this.editor.applyStyle( style );
+				}
+
+				if ( locked ) {
+					selection.lock();
+				}
+			}
+		},
+		isEnabled: function () {
+			return this.element && this.input.$.disabled !== true;
+		},
+		setEnabled: function ( value ) {
+			if ( !this.element ) return;
+
+			this.input.$.disabled = !value;
+
+			if ( value ) {
+				this.element.removeClass( 'disabled' );
+			} else {
+				this.element.addClass( 'disabled' );
+				this.label.setHtml( '-' );
+				this.input.value = 0;
+			}
+		},
+		render: function( parent ) {
+			var onChange = CKEDITOR.tools.addFunction( function ( value, saveSnapshot ) {
+				this.setValue( value );
+
+				if ( saveSnapshot ) {
+					this.editor.fire( 'saveSnapshot' );
+				}
+			}, this );
+
+			var lang = this.editor.lang.spacingsliders;
+
+			var output = [];
+			var value = 0;
+
+			output.push( '<div id="' );
+			output.push( this.settings.name );
+			output.push( '" class="cke_spacingcontrol" title="">' );
+			output.push( '<label>' );
+			output.push( lang.labels[ this.settings.name ] );
+			output.push( '</label>' );
+			output.push( '<input type="range" ');
+			output.push( ' oninput="CKEDITOR.tools.callFunction( ' );
+			output.push( onChange );
+			output.push( ', this.value );" ' );
+			output.push( ' onchange="CKEDITOR.tools.callFunction( ' );
+			output.push( onChange );
+			output.push( ', this.value, true );" ' );
+			output.push( 'step="' );
+			output.push( this.settings.step || 1 );
+			output.push( '" ' );
+			output.push( 'min="' );
+			output.push( this.settings.min || 0 );
+			output.push( '" ' );
+			output.push( 'max="' );
+			output.push( this.settings.max || 100 );
+			output.push( '" />' );
+			output.push( '<span>' );
+			output.push( value );
+			output.push( '</span>' );
+			output.push( '</div>' );
+
+			parent.appendHtml( output.join( '' ) );
+
+			this.element = parent.findOne( '#' + this.settings.name );
+
+			this.input = parent.findOne( '#' + this.settings.name + ' input' );
+			this.label = parent.findOne( '#' + this.settings.name + ' span' );
+		},
+		update: function( path, block ) {
+			var value = path ? this.definition.getStyleValue( path, block ) : undefined;
+
+			if ( parseFloat( value ) === value ) {
+				var rounded = Math.round( value * 10 ) / 10;
+
+				this.setEnabled( true );
+
+				this.input.$.value = rounded;
+				this.label.setHtml( rounded);
+			} else {
+				this.setEnabled( false );
+			}
+		}
+	}
+});
+
+/**
+ * @cfg [spacingsliders_lineheightStyle=see source]
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.spacingsliders_lineheightStyle = {
+	type: CKEDITOR.STYLE_BLOCK,
+	element: 'div',
+	styles: { 'line-height': '#(size)' },
+	getStyleValue: function( path, block ) {
+		var convert = CKEDITOR.tools.convertToPx;
+
+		var size = convert( block.getComputedStyle( 'font-size' ) );
+		var value = convert( block.getComputedStyle( 'line-height' ) );
+
+		return size ? value / size : 0;
+	}
+};
+
+/**
+ * @cfg [spacingsliders_letterspacingStyle=see source]
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.spacingsliders_letterspacingStyle = {
+	element: 'div',
+	styles: { 'letter-spacing': '#(size)px' },
+	getStyleValue: function( path, block ) {
+		var elem = path.lastElement;
+		var value = elem.getComputedStyle( 'letter-spacing' );
+
+		if ( !/^[-]?[0-9\\.]+([a-z]*)$/.test( value ) ) {
+			return 0;
+		}
+
+		if ( value.startsWith( '-' )) {
+			// CKEDITOR.tools.convertToPx can't calculate a negative value.
+			return CKEDITOR.tools.convertToPx( value.substring( 1 ) ) * -1;
+		} else {
+			return CKEDITOR.tools.convertToPx( value );
+		}
+	}
+};
+
+/**
+ * Minimum value for line height.
+ * @cfg {Number} [lineheight_min=0]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Maximum value for line height.
+ * @cfg {Number} [lineheight_max=4]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Interval (step) to be used for line height control.
+ * @cfg {Number} [lineheight_step=0.1]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Minimum value for letter spacing.
+ * @cfg {Number} [letterspacing_min=-20]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Maximum value for letter spacing.
+ * @cfg {Number} [letterspacing_max=20]
+ * @member CKEDITOR.config
+ */
+

+ 28 - 0
public/ckeditor/plugins/spacingsliders/skins/default.css

@@ -0,0 +1,28 @@
+.cke_spacingcontrol {
+	font-size: 10pt;
+	display: flex;
+	align-items: center;
+	padding: 0.5em;
+}
+
+.cke_spacingcontrol label, .cke_spacingcontrol span {
+	white-space: nowrap;
+	padding: 0 0.5em;
+	flex: 0;
+}
+
+.cke_spacingcontrol label {
+	flex-basis: 30%;
+}
+
+.cke_spacingcontrol input {
+	flex: 1;
+}
+
+.cke_spacingcontrol span {
+	min-width: 2em;
+}
+
+.cke_spacingcontrol.disabled label, .cke_spacingcontrol.disabled span {
+	opacity: 0.3;
+}

+ 30 - 29
src/views/project/components/dataList.vue

@@ -578,45 +578,28 @@ export default {
           templateSection.innerHTML = this.preprocessContent(item.content)
           contentContainer.appendChild(templateSection)
         })
-
-        let contentData = `
-          <!DOCTYPE html>
-          <html xmlns:v="urn:schemas-microsoft-com:vml" 
-              xmlns:o="urn:schemas-microsoft-com:office:office" 
-              xmlns:w="urn:schemas-microsoft-com:office:word">
-          <head>
-            <meta charset="UTF-8">
-            <xml>
-              <w:WordDocument>
-                <w:View>Print</w:View>
-                <w:Zoom>100</w:Zoom>
-                <w:DoNotOptimizeForBrowser/>
-                <w:SpaceForUL/>
-                <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
-              </w:WordDocument>
-            </xml>
-            <style>
-              /* 基础样式 */
-              body {
+               /*  <w:SpaceForUL/>
+                <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> 
+                 body {
                 font-family: "Times New Roman", SimSun;
-                line-height: 1.0; /* 单倍行距 */
+                line-height: 1.0; 
               }
               
-              /* 段落样式 */
+             
               p {
-                margin-top: 0.5em; /* 段前0.5行 */
-                margin-bottom: 0.5em; /* 段后0.5行 */
-                line-height: 1.0 !important; /* 强制单倍行距 */
-                mso-line-height-rule: exactly; /* Word特定的行距规则 */
+                margin-top: 0.5em; 
+                margin-bottom: 0.5em; 
+                line-height: 1.0 !important; 
+                mso-line-height-rule: exactly; 
               }
               
-              /* 保持表格内容行距正常 */
+     
               table p {
                 margin: 0;
                 line-height: inherit;
               }
               
-              /* 列表样式 */
+             
               ul, ol {
                 margin-top: 0.5em;
                 margin-bottom: 0.5em;
@@ -626,7 +609,25 @@ export default {
               li {
                 line-height: 1.0;
                 margin: 0;
-              }
+              }*/
+        let contentData = `
+          <!DOCTYPE html>
+          <html xmlns:v="urn:schemas-microsoft-com:vml" 
+              xmlns:o="urn:schemas-microsoft-com:office:office" 
+              xmlns:w="urn:schemas-microsoft-com:office:word">
+          <head>
+            <meta charset="UTF-8">
+            <xml>
+              <w:WordDocument>
+                <w:View>Print</w:View>
+                <w:Zoom>100</w:Zoom>
+                <w:DoNotOptimizeForBrowser/>
+                
+              </w:WordDocument>
+            </xml>
+            <style>
+              /* 基础样式 */
+             
               
               /* 保持原有表格样式 */
               table {

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.