vue-editify 0.0.51 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,11 +5,11 @@
5
5
  <template v-if="type == 'link'">
6
6
  <div class="editify-toolbar-link">
7
7
  <div class="editify-toolbar-link-label">{{ $editTrans('linkAddress') }}</div>
8
- <input @input="modifyLink" @focus="handleInputFocus" @blur="handleInputBlur" :placeholder="$editTrans('linkUrlEnterPlaceholder')" v-model.trim="linkConfig.url" type="url" />
8
+ <input @change="modifyLink" @focus="handleInputFocus" @blur="handleInputBlur" :placeholder="$editTrans('linkUrlEnterPlaceholder')" v-model.trim="linkConfig.url" type="url" />
9
9
  <div class="editify-toolbar-link-footer">
10
10
  <Checkbox @change="modifyLink" v-model="linkConfig.newOpen" :label="$editTrans('newWindowOpen')" :color="$parent.color" :size="10"></Checkbox>
11
11
  <div class="editify-toolbar-link-operations">
12
- <span @click="$parent.removeLink">{{ $editTrans('removeLink') }}</span>
12
+ <span @click="removeLink">{{ $editTrans('removeLink') }}</span>
13
13
  <a :href="linkConfig.url" target="_blank" :style="{ color: $parent.color }">{{ $editTrans('viewLink') }}</a>
14
14
  </div>
15
15
  </div>
@@ -28,7 +28,7 @@
28
28
  <Icon value="auto-width"></Icon>
29
29
  </Button>
30
30
  <!-- 删除图片 -->
31
- <Button @operate="$parent.deleteByParsedom('img')" name="deleteImage" :title="$editTrans('deleteImage')" :tooltip="config.tooltip" :color="$parent.color">
31
+ <Button @operate="deleteElement('img')" name="deleteImage" :title="$editTrans('deleteImage')" :tooltip="config.tooltip" :color="$parent.color">
32
32
  <Icon value="delete"></Icon>
33
33
  </Button>
34
34
  </template>
@@ -61,7 +61,7 @@
61
61
  <Icon value="controls"></Icon>
62
62
  </Button>
63
63
  <!-- 删除视频 -->
64
- <Button @operate="$parent.deleteByParsedom('video')" name="deleteVideo" :title="$editTrans('deleteVideo')" :tooltip="config.tooltip" :color="$parent.color">
64
+ <Button @operate="deleteElement('video')" name="deleteVideo" :title="$editTrans('deleteVideo')" :tooltip="config.tooltip" :color="$parent.color">
65
65
  <Icon value="delete"></Icon>
66
66
  </Button>
67
67
  </template>
@@ -100,7 +100,7 @@
100
100
  <Icon value="delete-column"></Icon>
101
101
  </Button>
102
102
  <!-- 删除表格 -->
103
- <Button @operate="$parent.deleteByParsedom('table')" name="deleteTable" :title="$editTrans('deleteTable')" :tooltip="config.tooltip" :color="$parent.color">
103
+ <Button @operate="deleteElement('table')" name="deleteTable" :title="$editTrans('deleteTable')" :tooltip="config.tooltip" :color="$parent.color">
104
104
  <Icon value="delete-table"></Icon>
105
105
  </Button>
106
106
  </template>
@@ -194,14 +194,15 @@
194
194
  </Layer>
195
195
  </template>
196
196
  <script>
197
- import Layer from '../base/Layer'
198
- import Tooltip from '../base/Tooltip'
199
- import Button from '../base/Button'
200
- import Icon from '../base/Icon'
201
- import Checkbox from '../base/Checkbox'
202
- import Colors from './Colors'
197
+ import Layer from './base/Layer'
198
+ import Tooltip from './base/Tooltip'
199
+ import Button from './base/Button'
200
+ import Icon from './base/Icon'
201
+ import Checkbox from './base/Checkbox'
202
+ import Colors from './common/Colors'
203
203
  import { AlexElement } from 'alex-editor'
204
- import Dap from 'dap-util'
204
+ import { common as DapCommon } from 'dap-util'
205
+ import { getCurrentParsedomElement, removeTextStyle, removeTextMark, setTextStyle, setLineHeight, setTextMark, setList, setTask, setHeading, setAlign, isRangeInList, isRangeInTask, queryTextStyle, queryTextMark } from '../core/function'
205
206
  export default {
206
207
  name: 'Toolbar',
207
208
  emits: ['update:modelValue'],
@@ -472,102 +473,207 @@ export default {
472
473
  },
473
474
  inject: ['$editTrans'],
474
475
  methods: {
476
+ //输入框获取焦点
477
+ handleInputFocus(e) {
478
+ if (this.$parent.color) {
479
+ e.currentTarget.style.borderColor = this.$parent.color
480
+ }
481
+ },
482
+ //输入框失去焦点
483
+ handleInputBlur(e) {
484
+ e.currentTarget.style.borderColor = ''
485
+ },
475
486
  //清除格式
476
487
  clearFormat() {
477
- this.$parent.formatText(true, true)
488
+ removeTextStyle(this.$parent)
489
+ removeTextMark(this.$parent)
490
+ this.$parent.editor.formatElementStack()
491
+ this.$parent.editor.domRender()
492
+ this.$parent.editor.rangeRender()
478
493
  },
479
494
  //设置背景色
480
495
  setBackColor(value) {
481
- this.$parent.setTextStyle('background-color', value, true, true)
496
+ setTextStyle(this.$parent, {
497
+ 'background-color': value
498
+ })
482
499
  this.$refs.backColor.hideLayer()
500
+ this.$parent.editor.formatElementStack()
501
+ this.$parent.editor.domRender()
502
+ this.$parent.editor.rangeRender()
483
503
  },
484
504
  //设置前景色
485
505
  setForeColor(value) {
486
- this.$parent.setTextStyle('color', value, true, true)
506
+ setTextStyle(this.$parent, {
507
+ color: value
508
+ })
487
509
  this.$refs.foreColor.hideLayer()
510
+ this.$parent.editor.formatElementStack()
511
+ this.$parent.editor.domRender()
512
+ this.$parent.editor.rangeRender()
488
513
  },
489
514
  //设置行高
490
515
  setLineHeight(name, value) {
491
- this.$parent.setLineHeight(value, true, true)
516
+ setLineHeight(this.$parent, value)
517
+ this.$parent.editor.formatElementStack()
518
+ this.$parent.editor.domRender()
519
+ this.$parent.editor.rangeRender()
492
520
  },
493
521
  //设置字体
494
522
  setFontFamily(name, value) {
495
- this.$parent.setTextStyle('font-family', value, true, true)
523
+ setTextStyle(this.$parent, {
524
+ 'font-family': value
525
+ })
526
+ this.$parent.editor.formatElementStack()
527
+ this.$parent.editor.domRender()
528
+ this.$parent.editor.rangeRender()
496
529
  },
497
530
  //设置字号
498
531
  setFontSize(name, value) {
499
- this.$parent.setTextStyle('font-size', value, true, true)
532
+ setTextStyle(this.$parent, {
533
+ 'font-size': value
534
+ })
535
+ this.$parent.editor.formatElementStack()
536
+ this.$parent.editor.domRender()
537
+ this.$parent.editor.rangeRender()
500
538
  },
501
539
  //设置上标
502
540
  setSuperscript() {
503
- this.$parent.setTextStyle('vertical-align', 'super', true, true)
541
+ if (queryTextStyle(this.$parent, 'vertical-align', 'super')) {
542
+ removeTextStyle(this.$parent, ['vertical-align'])
543
+ } else {
544
+ setTextStyle(this.$parent, {
545
+ 'vertical-align': 'super'
546
+ })
547
+ }
548
+ this.$parent.editor.formatElementStack()
549
+ this.$parent.editor.domRender()
550
+ this.$parent.editor.rangeRender()
504
551
  },
505
552
  //设置下标
506
553
  setSubscript() {
507
- this.$parent.setTextStyle('vertical-align', 'sub', true, true)
554
+ if (queryTextStyle(this.$parent, 'vertical-align', 'sub')) {
555
+ removeTextStyle(this.$parent, ['vertical-align'])
556
+ } else {
557
+ setTextStyle(this.$parent, {
558
+ 'vertical-align': 'sub'
559
+ })
560
+ }
561
+ this.$parent.editor.formatElementStack()
562
+ this.$parent.editor.domRender()
563
+ this.$parent.editor.rangeRender()
508
564
  },
509
565
  //设置行内代码样式
510
566
  setCodeStyle() {
511
- this.$parent.setTextMark('data-editify-code', true, true, true)
567
+ if (queryTextMark(this.$parent, 'data-editify-code')) {
568
+ removeTextMark(this.$parent, ['data-editify-code'])
569
+ } else {
570
+ setTextMark(this.$parent, {
571
+ 'data-editify-code': true
572
+ })
573
+ }
574
+ this.$parent.editor.formatElementStack()
575
+ this.$parent.editor.domRender()
576
+ this.$parent.editor.rangeRender()
512
577
  },
513
578
  //设置下划线
514
579
  setUnderline() {
515
- this.$parent.setTextStyle('text-decoration', 'underline', true, true)
580
+ if (queryTextStyle(this.$parent, 'text-decoration', 'underline') || queryTextStyle(this.$parent, 'text-decoration-line', 'underline')) {
581
+ removeTextStyle(this.$parent, ['text-decoration', 'text-decoration-line'])
582
+ } else {
583
+ setTextStyle(this.$parent, {
584
+ 'text-decoration': 'underline'
585
+ })
586
+ }
587
+ this.$parent.editor.formatElementStack()
588
+ this.$parent.editor.domRender()
589
+ this.$parent.editor.rangeRender()
516
590
  },
517
591
  //设置删除线
518
592
  setStrikethrough() {
519
- this.$parent.setTextStyle('text-decoration', 'line-through', true, true)
593
+ if (queryTextStyle(this.$parent, 'text-decoration', 'line-through') || queryTextStyle(this.$parent, 'text-decoration-line', 'line-through')) {
594
+ removeTextStyle(this.$parent, ['text-decoration', 'text-decoration-line'])
595
+ } else {
596
+ setTextStyle(this.$parent, {
597
+ 'text-decoration': 'line-through'
598
+ })
599
+ }
600
+ this.$parent.editor.formatElementStack()
601
+ this.$parent.editor.domRender()
602
+ this.$parent.editor.rangeRender()
520
603
  },
521
604
  //设置列表
522
605
  setList(name) {
523
- this.$parent.setList(name == 'orderList', true, true)
606
+ setList(this.$parent, name == 'orderList')
607
+ this.$parent.editor.formatElementStack()
608
+ this.$parent.editor.domRender()
609
+ this.$parent.editor.rangeRender()
524
610
  },
525
611
  //设置任务列表
526
612
  setTask() {
527
- this.$parent.setTask(true, true)
613
+ setTask(this.$parent)
614
+ this.$parent.editor.formatElementStack()
615
+ this.$parent.editor.domRender()
616
+ this.$parent.editor.rangeRender()
528
617
  },
529
618
  //斜体
530
619
  setItalic() {
531
- this.$parent.setTextStyle('font-style', 'italic', true, true)
620
+ if (queryTextStyle(this.$parent, 'font-style', 'italic')) {
621
+ removeTextStyle(this.$parent, ['font-style'])
622
+ } else {
623
+ setTextStyle(this.$parent, {
624
+ 'font-style': 'italic'
625
+ })
626
+ }
627
+ this.$parent.editor.formatElementStack()
628
+ this.$parent.editor.domRender()
629
+ this.$parent.editor.rangeRender()
532
630
  },
533
631
  //加粗
534
632
  setBold() {
535
- this.$parent.setTextStyle('font-weight', 'bold', true, true)
633
+ if (queryTextStyle(this.$parent, 'font-weight', 'bold') || queryTextStyle(this.$parent, 'font-weight', '700')) {
634
+ removeTextStyle(this.$parent, ['font-weight'])
635
+ } else {
636
+ setTextStyle(this.$parent, {
637
+ 'font-weight': 'bold'
638
+ })
639
+ }
640
+ this.$parent.editor.formatElementStack()
641
+ this.$parent.editor.domRender()
642
+ this.$parent.editor.rangeRender()
536
643
  },
537
644
  //设置标题
538
645
  setHeading(name, value) {
539
- this.$parent.setHeading(value, true, true)
646
+ setHeading(this.$parent, value)
647
+ this.$parent.editor.formatElementStack()
648
+ this.$parent.editor.domRender()
649
+ this.$parent.editor.rangeRender()
540
650
  },
541
651
  //设置对齐方式
542
652
  setAlign(name, value) {
543
- this.$parent.setAlign(value, true, true)
653
+ setAlign(this.$parent, value)
654
+ this.$parent.editor.formatElementStack()
655
+ this.$parent.editor.domRender()
656
+ this.$parent.editor.rangeRender()
544
657
  },
545
- //设置视频
658
+ //设置视频属性
546
659
  setVideo(prop) {
547
- if (this.$parent.disabled) {
548
- return
660
+ const element = this.$parent.editor.range.anchor.element
661
+ //当前是拥有该属性
662
+ if (this.videoConfig[prop]) {
663
+ delete element.marks[prop]
549
664
  }
550
- const video = this.$parent.getCurrentParsedomElement('video', true)
551
- if (video) {
552
- //当前是拥有该属性
553
- if (this.videoConfig[prop]) {
554
- delete video.marks[prop]
555
- }
556
- //当前无该属性
557
- else {
558
- video.marks[prop] = true
559
- }
560
- this.videoConfig[prop] = !this.videoConfig[prop]
561
- this.$parent.editor.domRender()
562
- this.$parent.editor.rangeRender()
665
+ //当前无该属性
666
+ else {
667
+ element.marks[prop] = true
563
668
  }
669
+ this.videoConfig[prop] = !this.videoConfig[prop]
670
+ this.$parent.editor.formatElementStack()
671
+ this.$parent.editor.domRender()
672
+ this.$parent.editor.rangeRender()
564
673
  },
565
- //设置宽度
674
+ //设置图片或者视频宽度
566
675
  setWidth(value) {
567
- if (this.$parent.disabled) {
568
- return
569
- }
570
- const element = this.$parent.getCurrentParsedomElement('img', true) || this.$parent.getCurrentParsedomElement('video', true)
676
+ const element = this.$parent.editor.range.anchor.element
571
677
  if (element) {
572
678
  const styles = {
573
679
  width: value
@@ -588,13 +694,10 @@ export default {
588
694
  },
589
695
  //修改链接
590
696
  modifyLink() {
591
- if (this.$parent.disabled) {
592
- return
593
- }
594
697
  if (!this.linkConfig.url) {
595
698
  return
596
699
  }
597
- const link = this.$parent.getCurrentParsedomElement('a', true)
700
+ const link = getCurrentParsedomElement(this.$parent, 'a')
598
701
  if (link) {
599
702
  link.marks.href = this.linkConfig.url
600
703
  if (this.linkConfig.newOpen) {
@@ -606,28 +709,21 @@ export default {
606
709
  this.$parent.editor.formatElementStack()
607
710
  this.$parent.editor.domRender()
608
711
  },
609
- //输入框获取焦点
610
- handleInputFocus(e) {
611
- if (this.$parent.disabled) {
612
- return
613
- }
614
- if (this.$parent.color) {
615
- e.currentTarget.style.borderColor = this.$parent.color
616
- }
617
- },
618
- //输入框失去焦点
619
- handleInputBlur(e) {
620
- if (this.$parent.disabled) {
621
- return
712
+ //移除链接
713
+ removeLink() {
714
+ const link = getCurrentParsedomElement(this.$parent, 'a')
715
+ if (link) {
716
+ link.parsedom = AlexElement.TEXT_NODE
717
+ delete link.marks.target
718
+ delete link.marks.href
622
719
  }
623
- e.currentTarget.style.borderColor = ''
720
+ this.$parent.editor.formatElementStack()
721
+ this.$parent.editor.domRender()
722
+ this.$parent.editor.rangeRender()
624
723
  },
625
724
  //选择代码语言
626
725
  selectLanguage(name, value) {
627
- if (this.$parent.disabled) {
628
- return
629
- }
630
- const pre = this.$parent.getCurrentParsedomElement('pre', true)
726
+ const pre = getCurrentParsedomElement(this.$parent, 'pre')
631
727
  if (pre) {
632
728
  Object.assign(pre.marks, {
633
729
  'data-editify-hljs': value
@@ -639,14 +735,11 @@ export default {
639
735
  },
640
736
  //代码块前后插入段落
641
737
  insertParagraphWithPre(type = 'up') {
642
- if (this.$parent.disabled) {
643
- return
644
- }
645
738
  if (!this.$parent.editor.range.anchor.isEqual(this.$parent.editor.range.focus)) {
646
739
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
647
740
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
648
741
  }
649
- const pre = this.$parent.getCurrentParsedomElement('pre', true)
742
+ const pre = getCurrentParsedomElement(this.$parent, 'pre')
650
743
  if (pre) {
651
744
  const paragraph = new AlexElement('block', AlexElement.BLOCK_NODE, null, null, null)
652
745
  const breakEl = new AlexElement('closed', 'br', null, null, null)
@@ -665,16 +758,13 @@ export default {
665
758
  },
666
759
  //表格前后插入列
667
760
  insertTableColumn(type = 'left') {
668
- if (this.$parent.disabled) {
669
- return
670
- }
671
761
  if (!this.$parent.editor.range.anchor.isEqual(this.$parent.editor.range.focus)) {
672
762
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
673
763
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
674
764
  }
675
- const table = this.$parent.getCurrentParsedomElement('table', true)
676
- const column = this.$parent.getCurrentParsedomElement('td', true)
677
- const tbody = this.$parent.getCurrentParsedomElement('tbody', true)
765
+ const table = getCurrentParsedomElement(this.$parent, 'table')
766
+ const column = getCurrentParsedomElement(this.$parent, 'td')
767
+ const tbody = getCurrentParsedomElement(this.$parent, 'tbody')
678
768
  if (column && table && tbody) {
679
769
  const rows = tbody.children
680
770
  const index = column.parent.children.findIndex(item => {
@@ -718,15 +808,12 @@ export default {
718
808
  },
719
809
  //表格前后插入行
720
810
  insertTableRow(type = 'up') {
721
- if (this.$parent.disabled) {
722
- return
723
- }
724
811
  if (!this.$parent.editor.range.anchor.isEqual(this.$parent.editor.range.focus)) {
725
812
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
726
813
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
727
814
  }
728
- const table = this.$parent.getCurrentParsedomElement('table', true)
729
- const row = this.$parent.getCurrentParsedomElement('tr', true)
815
+ const table = getCurrentParsedomElement(this.$parent, 'table')
816
+ const row = getCurrentParsedomElement(this.$parent, 'tr')
730
817
  if (table && row) {
731
818
  const newRow = row.clone()
732
819
  newRow.children.forEach(column => {
@@ -752,10 +839,7 @@ export default {
752
839
  },
753
840
  //表格前后插入段落
754
841
  insertParagraphWithTable(type = 'up') {
755
- if (this.$parent.disabled) {
756
- return
757
- }
758
- const table = this.$parent.getCurrentParsedomElement('table', true)
842
+ const table = getCurrentParsedomElement(this.$parent, 'table')
759
843
  if (table) {
760
844
  const paragraph = new AlexElement('block', AlexElement.BLOCK_NODE, null, null, null)
761
845
  const breakEl = new AlexElement('closed', 'br', null, null, null)
@@ -774,19 +858,16 @@ export default {
774
858
  },
775
859
  //删除表格行
776
860
  deleteTableRow() {
777
- if (this.$parent.disabled) {
778
- return
779
- }
780
861
  if (!this.$parent.editor.range.anchor.isEqual(this.$parent.editor.range.focus)) {
781
862
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
782
863
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
783
864
  }
784
- const table = this.$parent.getCurrentParsedomElement('table', true)
785
- const row = this.$parent.getCurrentParsedomElement('tr', true)
865
+ const table = getCurrentParsedomElement(this.$parent, 'table')
866
+ const row = getCurrentParsedomElement(this.$parent, 'tr')
786
867
  if (table && row) {
787
868
  const parent = row.parent
788
869
  if (parent.children.length == 1) {
789
- this.$parent.deleteByParsedom('table', true, true)
870
+ this.deleteElement('table')
790
871
  return
791
872
  }
792
873
  const previousRow = this.$parent.editor.getPreviousElement(row)
@@ -810,21 +891,18 @@ export default {
810
891
  },
811
892
  //删除表格列
812
893
  deleteTableColumn() {
813
- if (this.$parent.disabled) {
814
- return
815
- }
816
894
  if (!this.$parent.editor.range.anchor.isEqual(this.$parent.editor.range.focus)) {
817
895
  this.$parent.editor.range.anchor.element = this.$parent.editor.range.focus.element
818
896
  this.$parent.editor.range.anchor.offset = this.$parent.editor.range.focus.offset
819
897
  }
820
- const column = this.$parent.getCurrentParsedomElement('td', true)
821
- const tbody = this.$parent.getCurrentParsedomElement('tbody', true)
822
- const table = this.$parent.getCurrentParsedomElement('table', true)
898
+ const column = getCurrentParsedomElement(this.$parent, 'td')
899
+ const tbody = getCurrentParsedomElement(this.$parent, 'tbody')
900
+ const table = getCurrentParsedomElement(this.$parent, 'table')
823
901
  if (column && table && tbody) {
824
902
  const rows = tbody.children
825
903
  const parent = column.parent
826
904
  if (parent.children.length == 1) {
827
- this.$parent.deleteByParsedom('table', true, true)
905
+ this.deleteElement('table')
828
906
  return
829
907
  }
830
908
  const previousColumn = this.$parent.editor.getPreviousElement(column)
@@ -854,20 +932,28 @@ export default {
854
932
  this.$parent.editor.rangeRender()
855
933
  }
856
934
  },
935
+ //删除元素
936
+ deleteElement(parsedom) {
937
+ const element = getCurrentParsedomElement(this.$parent, parsedom)
938
+ if (element) {
939
+ element.toEmpty()
940
+ this.$parent.editor.formatElementStack()
941
+ this.$parent.editor.domRender()
942
+ this.$parent.editor.rangeRender()
943
+ }
944
+ },
857
945
  //浮层显示时
858
946
  layerShow() {
859
- //获取选区的元素
860
- const result = this.$parent.editor.getElementsByRange(true).includes
861
947
  //代码块初始化展示设置
862
948
  if (this.type == 'codeBlock') {
863
- const pre = this.$parent.getCurrentParsedomElement('pre', true)
949
+ const pre = getCurrentParsedomElement(this.$parent, 'pre')
864
950
  if (pre) {
865
951
  this.languageConfig.displayConfig.value = pre.marks['data-editify-hljs'] || ''
866
952
  }
867
953
  }
868
954
  //链接初始化展示
869
955
  else if (this.type == 'link') {
870
- const link = this.$parent.getCurrentParsedomElement('a', true)
956
+ const link = getCurrentParsedomElement(this.$parent, 'a')
871
957
  if (link) {
872
958
  this.linkConfig.url = link.marks['href']
873
959
  this.linkConfig.newOpen = link.marks['target'] == '_blank'
@@ -875,7 +961,7 @@ export default {
875
961
  }
876
962
  //视频初始化显示
877
963
  else if (this.type == 'video') {
878
- const video = this.$parent.getCurrentParsedomElement('video', true)
964
+ const video = getCurrentParsedomElement(this.$parent, 'video')
879
965
  if (video) {
880
966
  this.videoConfig.autoplay = !!video.marks['autoplay']
881
967
  this.videoConfig.loop = !!video.marks['loop']
@@ -895,17 +981,17 @@ export default {
895
981
  //显示已设置标题
896
982
  const findHeadingItem = this.headingConfig.displayConfig.options.find(item => {
897
983
  let val = item
898
- if (Dap.common.isObject(item)) {
984
+ if (DapCommon.isObject(item)) {
899
985
  val = item.value
900
986
  }
901
- return result.every(el => {
987
+ return this.$parent.dataRangeCaches.list.every(el => {
902
988
  if (el.element.isBlock()) {
903
989
  return el.element.parsedom == val
904
990
  }
905
991
  return el.element.getBlock().parsedom == val
906
992
  })
907
993
  })
908
- this.headingConfig.displayConfig.value = findHeadingItem ? (Dap.common.isObject(findHeadingItem) ? findHeadingItem.value : findHeadingItem) : this.headingConfig.defaultValue
994
+ this.headingConfig.displayConfig.value = findHeadingItem ? (DapCommon.isObject(findHeadingItem) ? findHeadingItem.value : findHeadingItem) : this.headingConfig.defaultValue
909
995
  //标题禁用
910
996
  this.headingConfig.disabled = extraDisabled('heading')
911
997
 
@@ -913,84 +999,84 @@ export default {
913
999
  this.alignConfig.disabled = extraDisabled('align')
914
1000
 
915
1001
  //有序列表按钮激活
916
- this.orderListConfig.active = this.$parent.inList(true, true)
1002
+ this.orderListConfig.active = isRangeInList(this.$parent, true)
917
1003
  //有序列表按钮禁用
918
1004
  this.orderListConfig.disabled = extraDisabled('orderList')
919
1005
 
920
1006
  //无序列表按钮激活
921
- this.unorderListConfig.active = this.$parent.inList(false, true)
1007
+ this.unorderListConfig.active = isRangeInList(this.$parent, false)
922
1008
  //无序列表按钮禁用
923
1009
  this.unorderListConfig.disabled = extraDisabled('unorderList')
924
1010
 
925
1011
  //任务列表按钮激活
926
- this.taskConfig.active = this.$parent.inTask(true, true)
1012
+ this.taskConfig.active = isRangeInTask(this.$parent)
927
1013
  //任务列表按钮禁用
928
1014
  this.taskConfig.disabled = extraDisabled('task')
929
1015
 
930
1016
  //粗体按钮激活
931
- this.boldConfig.active = this.$parent.queryTextStyle('font-weight', 'bold', true)
1017
+ this.boldConfig.active = queryTextStyle(this.$parent, 'font-weight', 'bold') || queryTextStyle(this.$parent, 'font-weight', '700')
932
1018
  //粗体按钮禁用
933
1019
  this.boldConfig.disabled = extraDisabled('bold')
934
1020
 
935
1021
  //斜体按钮激活
936
- this.italicConfig.active = this.$parent.queryTextStyle('font-style', 'italic', true)
1022
+ this.italicConfig.active = queryTextStyle(this.$parent, 'font-style', 'italic')
937
1023
  //斜体按钮禁用
938
1024
  this.italicConfig.disabled = extraDisabled('italic')
939
1025
 
940
1026
  //删除线按钮激活
941
- this.strikethroughConfig.active = this.$parent.queryTextStyle('text-decoration', 'line-through', true)
1027
+ this.strikethroughConfig.active = queryTextStyle(this.$parent, 'text-decoration', 'line-through') || queryTextStyle(this.$parent, 'text-decoration-line', 'line-through')
942
1028
  //删除线按钮禁用
943
1029
  this.strikethroughConfig.disabled = extraDisabled('strikethrough')
944
1030
 
945
1031
  //下划线按钮激活
946
- this.underlineConfig.active = this.$parent.queryTextStyle('text-decoration', 'underline', true)
1032
+ this.underlineConfig.active = queryTextStyle(this.$parent, 'text-decoration', 'underline') || queryTextStyle(this.$parent, 'text-decoration-line', 'underline')
947
1033
  //下划线按钮禁用
948
1034
  this.underlineConfig.disabled = extraDisabled('underline')
949
1035
 
950
1036
  //行内代码按钮激活
951
- this.codeConfig.active = this.$parent.queryTextMark('data-editify-code', null, true)
1037
+ this.codeConfig.active = queryTextMark(this.$parent, 'data-editify-code')
952
1038
  //行内代码按钮禁用
953
1039
  this.codeConfig.disabled = extraDisabled('code')
954
1040
 
955
1041
  //上标按钮激活
956
- this.superConfig.active = this.$parent.queryTextStyle('vertical-align', 'super', true)
1042
+ this.superConfig.active = queryTextStyle(this.$parent, 'vertical-align', 'super')
957
1043
  //上标按钮禁用
958
1044
  this.superConfig.disabled = extraDisabled('super')
959
1045
 
960
1046
  //下标按钮激活
961
- this.subConfig.active = this.$parent.queryTextStyle('vertical-align', 'sub', true)
1047
+ this.subConfig.active = queryTextStyle(this.$parent, 'vertical-align', 'sub')
962
1048
  //下标按钮禁用
963
1049
  this.subConfig.disabled = extraDisabled('sub')
964
1050
 
965
1051
  //显示已选择字号
966
1052
  const findFontItem = this.fontSizeConfig.displayConfig.options.find(item => {
967
- if (Dap.common.isObject(item)) {
968
- return this.$parent.queryTextStyle('font-size', item.value, true)
1053
+ if (DapCommon.isObject(item)) {
1054
+ return queryTextStyle(this.$parent, 'font-size', item.value)
969
1055
  }
970
- return this.$parent.queryTextStyle('font-size', item, true)
1056
+ return queryTextStyle(this.$parent, 'font-size', item)
971
1057
  })
972
- this.fontSizeConfig.displayConfig.value = findFontItem ? (Dap.common.isObject(findFontItem) ? findFontItem.value : findFontItem) : this.fontSizeConfig.defaultValue
1058
+ this.fontSizeConfig.displayConfig.value = findFontItem ? (DapCommon.isObject(findFontItem) ? findFontItem.value : findFontItem) : this.fontSizeConfig.defaultValue
973
1059
  //字号按钮禁用
974
1060
  this.fontSizeConfig.disabled = extraDisabled('fontSize')
975
1061
 
976
1062
  //显示已选择字体
977
1063
  const findFamilyItem = this.fontFamilyConfig.displayConfig.options.find(item => {
978
- if (Dap.common.isObject(item)) {
979
- return this.$parent.queryTextStyle('font-family', item.value, true)
1064
+ if (DapCommon.isObject(item)) {
1065
+ return queryTextStyle(this.$parent, 'font-family', item.value)
980
1066
  }
981
- return this.$parent.queryTextStyle('font-family', item, true)
1067
+ return queryTextStyle(this.$parent, 'font-family', item)
982
1068
  })
983
- this.fontFamilyConfig.displayConfig.value = findFamilyItem ? (Dap.common.isObject(findFamilyItem) ? findFamilyItem.value : findFamilyItem) : this.fontFamilyConfig.defaultValue
1069
+ this.fontFamilyConfig.displayConfig.value = findFamilyItem ? (DapCommon.isObject(findFamilyItem) ? findFamilyItem.value : findFamilyItem) : this.fontFamilyConfig.defaultValue
984
1070
  //字体按钮禁用
985
1071
  this.fontFamilyConfig.disabled = extraDisabled('fontFamily')
986
1072
 
987
1073
  //显示已设置行高
988
1074
  const findHeightItem = this.lineHeightConfig.displayConfig.options.find(item => {
989
1075
  let val = item
990
- if (Dap.common.isObject(item)) {
1076
+ if (DapCommon.isObject(item)) {
991
1077
  val = item.value
992
1078
  }
993
- return result.every(el => {
1079
+ return this.$parent.dataRangeCaches.list.every(el => {
994
1080
  if (el.element.isBlock() || el.element.isInblock()) {
995
1081
  return el.element.hasStyles() && el.element.styles['line-height'] == val
996
1082
  }
@@ -1002,29 +1088,29 @@ export default {
1002
1088
  return block.hasStyles() && block.styles['line-height'] == val
1003
1089
  })
1004
1090
  })
1005
- this.lineHeightConfig.displayConfig.value = findHeightItem ? (Dap.common.isObject(findHeightItem) ? findHeightItem.value : findHeightItem) : this.lineHeightConfig.defaultValue
1091
+ this.lineHeightConfig.displayConfig.value = findHeightItem ? (DapCommon.isObject(findHeightItem) ? findHeightItem.value : findHeightItem) : this.lineHeightConfig.defaultValue
1006
1092
  //行高按钮禁用
1007
1093
  this.lineHeightConfig.disabled = extraDisabled('lineHeight')
1008
1094
 
1009
1095
  //显示已选择的前景色
1010
1096
  const findForeColorItem = this.foreColorConfig.selectConfig.options.find(item => {
1011
- if (Dap.common.isObject(item)) {
1012
- return this.$parent.queryTextStyle('color', item.value, true)
1097
+ if (DapCommon.isObject(item)) {
1098
+ return queryTextStyle(this.$parent, 'color', item.value)
1013
1099
  }
1014
- return this.$parent.queryTextStyle('color', item, true)
1100
+ return queryTextStyle(this.$parent, 'color', item)
1015
1101
  })
1016
- this.foreColorConfig.value = findForeColorItem ? (Dap.common.isObject(findForeColorItem) ? findForeColorItem.value : findForeColorItem) : ''
1102
+ this.foreColorConfig.value = findForeColorItem ? (DapCommon.isObject(findForeColorItem) ? findForeColorItem.value : findForeColorItem) : ''
1017
1103
  //前景色按钮禁用
1018
1104
  this.foreColorConfig.disabled = extraDisabled('foreColor')
1019
1105
 
1020
1106
  //显示已选择的背景色
1021
1107
  const findBackColorItem = this.backColorConfig.selectConfig.options.find(item => {
1022
- if (Dap.common.isObject(item)) {
1023
- return this.$parent.queryTextStyle('background-color', item.value, true)
1108
+ if (DapCommon.isObject(item)) {
1109
+ return queryTextStyle(this.$parent, 'background-color', item.value)
1024
1110
  }
1025
- return this.$parent.queryTextStyle('background-color', item, true)
1111
+ return queryTextStyle(this.$parent, 'background-color', item)
1026
1112
  })
1027
- this.backColorConfig.value = findBackColorItem ? (Dap.common.isObject(findBackColorItem) ? findBackColorItem.value : findBackColorItem) : ''
1113
+ this.backColorConfig.value = findBackColorItem ? (DapCommon.isObject(findBackColorItem) ? findBackColorItem.value : findBackColorItem) : ''
1028
1114
  //背景色按钮禁用
1029
1115
  this.backColorConfig.disabled = extraDisabled('backColor')
1030
1116