@wg-npm/survey-creator 0.3.7686 → 0.3.7724

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1809,7 +1809,6 @@ var script$t = Vue.extend({
1809
1809
  watch: {
1810
1810
  conditions: {
1811
1811
  handler(val) {
1812
- debugger;
1813
1812
  this.initialDesc();
1814
1813
  },
1815
1814
  deep: true
@@ -1858,7 +1857,6 @@ var script$t = Vue.extend({
1858
1857
  return chinese ? chinese.length : 0;
1859
1858
  },
1860
1859
  initialDesc() {
1861
- debugger;
1862
1860
  let desc = "";
1863
1861
  let ds = _.map(this.conditions, (c) => {
1864
1862
  return this.getDesc(c);
@@ -3264,6 +3262,7 @@ var script$d = Vue.extend({
3264
3262
  }
3265
3263
  },
3266
3264
  disabledScoreOption(value, type) {
3265
+ debugger;
3267
3266
  if (this.checkValueInOtherRange(value)) {
3268
3267
  return true;
3269
3268
  }
@@ -3323,11 +3322,11 @@ var __vue_staticRenderFns__$d = [];
3323
3322
  /* style */
3324
3323
  const __vue_inject_styles__$d = function (inject) {
3325
3324
  if (!inject) return
3326
- inject("data-v-7c338c4d_0", { source: ".label[data-v-7c338c4d]{text-align:right;margin-bottom:24px}[data-v-7c338c4d] .operator .ivu-select-selected-value{height:28px;line-height:28px}", map: undefined, media: undefined });
3325
+ inject("data-v-1411052e_0", { source: ".label[data-v-1411052e]{text-align:right;margin-bottom:24px}[data-v-1411052e] .operator .ivu-select-selected-value{height:28px;line-height:28px}", map: undefined, media: undefined });
3327
3326
 
3328
3327
  };
3329
3328
  /* scoped */
3330
- const __vue_scope_id__$d = "data-v-7c338c4d";
3329
+ const __vue_scope_id__$d = "data-v-1411052e";
3331
3330
  /* module identifier */
3332
3331
  const __vue_module_identifier__$d = undefined;
3333
3332
  /* functional template */
@@ -3463,6 +3462,14 @@ var script$b = Vue.extend({
3463
3462
  required: true,
3464
3463
  },
3465
3464
  },
3465
+ watch: {
3466
+ "exprConditionType": {
3467
+ handler(newValue, oldValue) {
3468
+ debugger;
3469
+ this.evaluationItems[this.position].conditions = [];
3470
+ }
3471
+ },
3472
+ },
3466
3473
  data() {
3467
3474
  return {
3468
3475
  evaluationItems: this.value,
@@ -3538,22 +3545,22 @@ var script$b = Vue.extend({
3538
3545
  const __vue_script__$b = script$b;
3539
3546
 
3540
3547
  /* template */
3541
- var __vue_render__$b = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Card',{attrs:{"dis-hover":""}},[_c('Row',{attrs:{"slot":"title","type":"flex","gutter":6},slot:"title"},[_c('Col',[_c('div',{staticClass:"text"},[_vm._v("\n "+_vm._s(_vm.t("survey_creator.question.evaluation.condition.if"))+"\n ")])]),_vm._v(" "),_c('Col',[_c('Button',{attrs:{"type":"primary","icon":"md-add"},on:{"click":_vm.onAdd}},[_vm._v("\n "+_vm._s(_vm.t("survey_creator.question.evaluation.condition.add_if_template"))+"\n ")])],1)],1),_vm._v(" "),_c('a',{directives:[{name:"show",rawName:"v-show",value:(_vm.deletable),expression:"deletable"}],attrs:{"slot":"extra","href":"#"},on:{"click":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},slot:"extra"},[_vm._v("\n "+_vm._s(_vm.t("survey_creator.common.delete"))+"\n ")]),_vm._v(" "),_c('Row',{attrs:{"type":"flex","justify":"start","align":"middle"}},[_c('Col',{attrs:{"span":22}},[_c('Row',{attrs:{"type":"flex","justify":"start","align":"middle"}},[_c('Col',{staticClass:"label"},[_c('Icon',{attrs:{"type":"ios-arrow-forward","color":"#2d8cf0"}}),_vm._v("\n "+_vm._s(_vm.t("survey_creator.question.evaluation.condition.requirements"))+"\n ")],1),_vm._v(" "),_c('Col',{attrs:{"span":16}},[_c('Select',{model:{value:(_vm.exprConditionType),callback:function ($$v) {_vm.exprConditionType=$$v;},expression:"exprConditionType"}},_vm._l((_vm.exprConditionTypes),function(type){return _c('Option',{key:type,attrs:{"value":type}},[_vm._v("\n "+_vm._s(_vm.t(("survey_creator.question.evaluation.condition.type." + type)))+"\n ")])}),1)],1)],1)],1),_vm._v(" "),_c('Col',{attrs:{"span":2}},[_c('Button',{staticClass:"action",attrs:{"icon":"md-add","disabled":_vm.disableAddConditionBtn},on:{"click":_vm.addCondition}})],1)],1),_vm._v(" "),_vm._l((_vm.evaluationItems[_vm.position].conditions),function(condition,index){return _c('Row',{key:index,staticClass:"mt-base",attrs:{"type":"flex","justify":"space-between","align":"middle"}},[_c('Col',{attrs:{"span":22}},[_c('condition',{key:index,attrs:{"index":index,"type":condition.type,"question":_vm.question,"evaluation-items":_vm.evaluationItems,"item-index":_vm.position},on:{"expr":_vm.expr},model:{value:(condition.payload),callback:function ($$v) {_vm.$set(condition, "payload", $$v);},expression:"condition.payload"}})],1),_vm._v(" "),_c('Col',{attrs:{"span":2}},[_c('Button',{staticClass:"action",staticStyle:{"margin-bottom":"24px"},attrs:{"icon":"md-remove"},on:{"click":function($event){return _vm.removeCondition(index)}}})],1)],1)}),_vm._v(" "),_c('Row',{staticClass:"mt-base",attrs:{"type":"flex","justify":"end","align":"middle"}},[_c('Col',[_c('FormItem',{attrs:{"prop":'evaluationItems[' + _vm.position + '].text.' + _vm.primaryLanguage,"rules":{
3542
- required: true,
3543
- message: _vm.t(
3544
- 'survey_creator.question.evaluation.condition.evaluation_require_tip'
3545
- ),
3546
- }}},[_vm._v(_vm._s(_vm.t("survey_creator.question.evaluation.condition.evaluation_label"))+"\n "),_c('Input',{staticClass:"input",model:{value:(_vm.evaluationItems[_vm.position].text[_vm.primaryLanguage]),callback:function ($$v) {_vm.$set(_vm.evaluationItems[_vm.position].text, _vm.primaryLanguage, (typeof $$v === 'string'? $$v.trim(): $$v));},expression:"evaluationItems[position].text[primaryLanguage]"}})],1)],1)],1)],2)};
3548
+ var __vue_render__$b = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Card',{attrs:{"dis-hover":""}},[_c('Row',{attrs:{"slot":"title","type":"flex","gutter":6},slot:"title"},[_c('Col',[_c('div',{staticClass:"text"},[_vm._v("\n "+_vm._s(_vm.t("survey_creator.question.evaluation.condition.if"))+"\n ")])]),_vm._v(" "),_c('Col',[_c('Button',{attrs:{"type":"primary","icon":"md-add"},on:{"click":_vm.onAdd}},[_vm._v("\n "+_vm._s(_vm.t("survey_creator.question.evaluation.condition.add_if_template"))+"\n ")])],1)],1),_vm._v(" "),_c('a',{directives:[{name:"show",rawName:"v-show",value:(_vm.deletable),expression:"deletable"}],attrs:{"slot":"extra","href":"#"},on:{"click":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},slot:"extra"},[_vm._v("\n "+_vm._s(_vm.t("survey_creator.common.delete"))+"\n ")]),_vm._v(" "),_c('Row',{attrs:{"type":"flex","justify":"start","align":"middle"}},[_c('Col',{attrs:{"span":22}},[_c('Row',{attrs:{"type":"flex","justify":"start","align":"middle"}},[_c('Col',{staticClass:"label"},[_c('Icon',{attrs:{"type":"ios-arrow-forward","color":"#2d8cf0"}}),_vm._v("\n "+_vm._s(_vm.t("survey_creator.question.evaluation.condition.requirements"))+"\n ")],1),_vm._v(" "),_c('Col',{attrs:{"span":16}},[_c('Select',{model:{value:(_vm.exprConditionType),callback:function ($$v) {_vm.exprConditionType=$$v;},expression:"exprConditionType"}},_vm._l((_vm.exprConditionTypes),function(type){return _c('Option',{key:type,attrs:{"value":type}},[_vm._v("\n "+_vm._s(_vm.t(("survey_creator.question.evaluation.condition.type." + type)))+"\n ")])}),1)],1)],1)],1),_vm._v(" "),_c('Col',{attrs:{"span":2}},[_c('Button',{staticClass:"action",attrs:{"icon":"md-add","disabled":_vm.disableAddConditionBtn},on:{"click":_vm.addCondition}})],1)],1),_vm._v(" "),_vm._l((_vm.evaluationItems[_vm.position].conditions),function(condition,index){return _c('Row',{key:index,staticClass:"mt-base",attrs:{"type":"flex","justify":"space-between","align":"middle"}},[_c('Col',{attrs:{"span":22}},[_c('condition',{key:index,attrs:{"index":index,"type":condition.type,"question":_vm.question,"evaluation-items":_vm.evaluationItems,"item-index":_vm.position},on:{"expr":_vm.expr},model:{value:(condition.payload),callback:function ($$v) {_vm.$set(condition, "payload", $$v);},expression:"condition.payload"}})],1),_vm._v(" "),_c('Col',{attrs:{"span":2}},[_c('Button',{staticClass:"action",staticStyle:{"margin-bottom":"24px"},attrs:{"icon":"md-remove"},on:{"click":function($event){return _vm.removeCondition(index)}}})],1)],1)}),_vm._v(" "),_c('Row',{staticClass:"mt-base",attrs:{"type":"flex","justify":"end","align":"middle"}},[_c('Col',[_c('FormItem',{attrs:{"prop":'evaluationItems[' + _vm.position + '].text.' + _vm.primaryLanguage,"rules":{
3549
+ required: true,
3550
+ message: _vm.t(
3551
+ 'survey_creator.question.evaluation.condition.evaluation_require_tip'
3552
+ ),
3553
+ }}},[_vm._v(_vm._s(_vm.t("survey_creator.question.evaluation.condition.evaluation_label"))+"\n "),_c('Input',{staticClass:"input",model:{value:(_vm.evaluationItems[_vm.position].text[_vm.primaryLanguage]),callback:function ($$v) {_vm.$set(_vm.evaluationItems[_vm.position].text, _vm.primaryLanguage, (typeof $$v === 'string'? $$v.trim(): $$v));},expression:"evaluationItems[position].text[primaryLanguage]"}})],1)],1)],1)],2)};
3547
3554
  var __vue_staticRenderFns__$b = [];
3548
3555
 
3549
3556
  /* style */
3550
3557
  const __vue_inject_styles__$b = function (inject) {
3551
3558
  if (!inject) return
3552
- inject("data-v-bb232856_0", { source: ".mt-base[data-v-bb232856]{margin-top:12px}.action[data-v-bb232856]{float:right}.input[data-v-bb232856]{width:100px}.label[data-v-bb232856]{text-align:right;padding-right:4px}.text[data-v-bb232856]{background-color:#ebf7ff;height:32px;padding:8px 18px;font-weight:500;color:#515a6e}[data-v-bb232856] .ivu-card .ivu-form-item{margin-bottom:4px;margin-top:0}[data-v-bb232856] .ivu-card .ivu-form-item-error{margin-bottom:24px;margin-top:0}", map: undefined, media: undefined });
3559
+ inject("data-v-975e9c18_0", { source: ".mt-base[data-v-975e9c18]{margin-top:12px}.action[data-v-975e9c18]{float:right}.input[data-v-975e9c18]{width:100px}.label[data-v-975e9c18]{text-align:right;padding-right:4px}.text[data-v-975e9c18]{background-color:#ebf7ff;height:32px;padding:8px 18px;font-weight:500;color:#515a6e}[data-v-975e9c18] .ivu-card .ivu-form-item{margin-bottom:4px;margin-top:0}[data-v-975e9c18] .ivu-card .ivu-form-item-error{margin-bottom:24px;margin-top:0}", map: undefined, media: undefined });
3553
3560
 
3554
3561
  };
3555
3562
  /* scoped */
3556
- const __vue_scope_id__$b = "data-v-bb232856";
3563
+ const __vue_scope_id__$b = "data-v-975e9c18";
3557
3564
  /* module identifier */
3558
3565
  const __vue_module_identifier__$b = undefined;
3559
3566
  /* functional template */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wg-npm/survey-creator",
3
- "version": "0.3.7686",
3
+ "version": "0.3.7724",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -12,8 +12,8 @@
12
12
  "lint-fix": "eslint \"**/*.ts\" \"**/*.vue\" --fix --no-error-on-unmatched-pattern"
13
13
  },
14
14
  "peerDependencies": {
15
- "@wg-npm/survey-core": "0.3.7686",
16
- "@wg-npm/survey-service-api": "0.3.7686",
15
+ "@wg-npm/survey-core": "0.3.7724",
16
+ "@wg-npm/survey-service-api": "0.3.7724",
17
17
  "axios": "^0.19.2",
18
18
  "camelcase": "^6.0.0",
19
19
  "deepmerge": "^4.2.2",
@@ -38,8 +38,8 @@
38
38
  "@typescript-eslint/eslint-plugin": "^3.6.0",
39
39
  "@typescript-eslint/parser": "^3.6.0",
40
40
  "@vue/eslint-config-prettier": "^6.0.0",
41
- "@wg-npm/survey-core": "0.3.7686",
42
- "@wg-npm/survey-service-api": "0.3.7686",
41
+ "@wg-npm/survey-core": "0.3.7724",
42
+ "@wg-npm/survey-service-api": "0.3.7724",
43
43
  "acorn": "^7.3.1",
44
44
  "axios": "^0.19.2",
45
45
  "babelrc-rollup": "^3.0.0",
@@ -42,7 +42,6 @@
42
42
  watch: {
43
43
  conditions: {
44
44
  handler(val) {
45
- debugger
46
45
  this.initialDesc();
47
46
  },
48
47
  deep: true
@@ -107,7 +106,6 @@
107
106
  return chinese ? chinese.length : 0;
108
107
  },
109
108
  initialDesc() {
110
- debugger
111
109
  let desc = "";
112
110
  let ds = _.map(this.conditions, (c) => {
113
111
  return this.getDesc(c);
@@ -1,269 +1,277 @@
1
1
  <template>
2
- <Card dis-hover>
3
- <Row type="flex" :gutter="6" slot="title">
4
- <Col>
5
- <div class="text">
6
- {{ t("survey_creator.question.evaluation.condition.if") }}
7
- </div>
8
- </Col>
9
- <Col>
10
- <Button type="primary" icon="md-add" @click="onAdd">
11
- {{
12
- t("survey_creator.question.evaluation.condition.add_if_template")
13
- }}
14
- </Button>
15
- </Col>
16
- </Row>
17
- <a href="#" slot="extra" @click.prevent="onDelete" v-show="deletable">
18
- {{ t("survey_creator.common.delete") }}
19
- </a>
20
- <Row type="flex" justify="start" align="middle">
21
- <Col :span="22">
2
+ <Card dis-hover>
3
+ <Row type="flex" :gutter="6" slot="title">
4
+ <Col>
5
+ <div class="text">
6
+ {{ t("survey_creator.question.evaluation.condition.if") }}
7
+ </div>
8
+ </Col>
9
+ <Col>
10
+ <Button type="primary" icon="md-add" @click="onAdd">
11
+ {{
12
+ t("survey_creator.question.evaluation.condition.add_if_template")
13
+ }}
14
+ </Button>
15
+ </Col>
16
+ </Row>
17
+ <a href="#" slot="extra" @click.prevent="onDelete" v-show="deletable">
18
+ {{ t("survey_creator.common.delete") }}
19
+ </a>
22
20
  <Row type="flex" justify="start" align="middle">
23
- <Col class="label">
24
- <Icon type="ios-arrow-forward" color="#2d8cf0" />
25
- {{ t("survey_creator.question.evaluation.condition.requirements") }}
26
- </Col>
27
- <Col :span="16">
28
- <Select v-model="exprConditionType">
29
- <Option
30
- v-for="type in exprConditionTypes"
31
- :value="type"
32
- :key="type"
33
- >
34
- {{
35
- t(`survey_creator.question.evaluation.condition.type.${type}`)
36
- }}
37
- </Option>
38
- </Select>
39
- </Col>
21
+ <Col :span="22">
22
+ <Row type="flex" justify="start" align="middle">
23
+ <Col class="label">
24
+ <Icon type="ios-arrow-forward" color="#2d8cf0"/>
25
+ {{ t("survey_creator.question.evaluation.condition.requirements") }}
26
+ </Col>
27
+ <Col :span="16">
28
+ <Select v-model="exprConditionType">
29
+ <Option
30
+ v-for="type in exprConditionTypes"
31
+ :value="type"
32
+ :key="type"
33
+ >
34
+ {{
35
+ t(`survey_creator.question.evaluation.condition.type.${type}`)
36
+ }}
37
+ </Option>
38
+ </Select>
39
+ </Col>
40
+ </Row>
41
+ </Col>
42
+ <Col :span="2">
43
+ <Button
44
+ icon="md-add"
45
+ :disabled="disableAddConditionBtn"
46
+ class="action"
47
+ @click="addCondition"
48
+ ></Button>
49
+ </Col>
50
+ </Row>
51
+ <Row
52
+ type="flex"
53
+ justify="space-between"
54
+ align="middle"
55
+ v-for="(condition, index) in evaluationItems[position].conditions"
56
+ :key="index"
57
+ class="mt-base"
58
+ >
59
+ <Col :span="22">
60
+ <condition
61
+ :key="index"
62
+ :index="index"
63
+ :type="condition.type"
64
+ v-model="condition.payload"
65
+ @expr="expr"
66
+ :question="question"
67
+ :evaluation-items="evaluationItems"
68
+ :item-index="position"
69
+ />
70
+ </Col>
71
+ <Col :span="2">
72
+ <Button
73
+ icon="md-remove"
74
+ class="action"
75
+ style="margin-bottom: 24px"
76
+ @click="removeCondition(index)"
77
+ ></Button>
78
+ </Col>
40
79
  </Row>
41
- </Col>
42
- <Col :span="2">
43
- <Button
44
- icon="md-add"
45
- :disabled="disableAddConditionBtn"
46
- class="action"
47
- @click="addCondition"
48
- ></Button>
49
- </Col>
50
- </Row>
51
- <Row
52
- type="flex"
53
- justify="space-between"
54
- align="middle"
55
- v-for="(condition, index) in evaluationItems[position].conditions"
56
- :key="index"
57
- class="mt-base"
58
- >
59
- <Col :span="22">
60
- <condition
61
- :key="index"
62
- :index="index"
63
- :type="condition.type"
64
- v-model="condition.payload"
65
- @expr="expr"
66
- :question="question"
67
- :evaluation-items="evaluationItems"
68
- :item-index="position"
69
- />
70
- </Col>
71
- <Col :span="2">
72
- <Button
73
- icon="md-remove"
74
- class="action"
75
- style="margin-bottom: 24px"
76
- @click="removeCondition(index)"
77
- ></Button>
78
- </Col>
79
- </Row>
80
- <Row type="flex" justify="end" align="middle" class="mt-base">
81
- <Col>
82
- <FormItem
83
- :prop="'evaluationItems[' + position + '].text.' + primaryLanguage"
84
- :rules="{
80
+ <Row type="flex" justify="end" align="middle" class="mt-base">
81
+ <Col>
82
+ <FormItem
83
+ :prop="'evaluationItems[' + position + '].text.' + primaryLanguage"
84
+ :rules="{
85
85
  required: true,
86
86
  message: t(
87
87
  'survey_creator.question.evaluation.condition.evaluation_require_tip'
88
88
  ),
89
89
  }"
90
- >{{
91
- t("survey_creator.question.evaluation.condition.evaluation_label")
92
- }}
93
- <Input
94
- class="input"
95
- v-model.trim="evaluationItems[position].text[primaryLanguage]"
96
- />
97
- </FormItem>
98
- </Col>
99
- </Row>
100
- </Card>
90
+ >{{
91
+ t("survey_creator.question.evaluation.condition.evaluation_label")
92
+ }}
93
+ <Input
94
+ class="input"
95
+ v-model.trim="evaluationItems[position].text[primaryLanguage]"
96
+ />
97
+ </FormItem>
98
+ </Col>
99
+ </Row>
100
+ </Card>
101
101
  </template>
102
102
  <script lang="ts">
103
- import Vue from "vue";
104
- import QuestionFormMixin from "../../../../../mixins/question-form-mixin";
105
- import {
106
- ExprConditionType,
107
- ExprEvaluationItemType,
108
- } from "@wg-npm/survey-core/src/models";
109
- import {
110
- Card,
111
- Row,
112
- Col,
113
- Button,
114
- Select,
115
- Option,
116
- Icon,
117
- FormItem,
118
- Input,
119
- } from "view-design";
120
- import Condition from "./condition.vue";
121
- import _ from "lodash";
103
+ import Vue from "vue";
104
+ import QuestionFormMixin from "../../../../../mixins/question-form-mixin";
105
+ import {
106
+ ExprConditionType,
107
+ ExprEvaluationItemType,
108
+ } from "@wg-npm/survey-core/src/models";
109
+ import {
110
+ Card,
111
+ Row,
112
+ Col,
113
+ Button,
114
+ Select,
115
+ Option,
116
+ Icon,
117
+ FormItem,
118
+ Input,
119
+ } from "view-design";
120
+ import Condition from "./condition.vue";
121
+ import _ from "lodash";
122
122
 
123
- export default Vue.extend({
124
- name: "if",
125
- mixins: [QuestionFormMixin],
126
- components: {
127
- Card,
128
- Row,
129
- Col,
130
- Select,
131
- Option,
132
- Button,
133
- Icon,
134
- Condition,
135
- FormItem,
136
- Input,
137
- },
138
- props: {
139
- value: {
140
- type: Array,
141
- required: true,
142
- },
143
- position: {
144
- type: Number,
145
- required: true,
146
- },
147
- },
148
- data() {
149
- return {
150
- evaluationItems: this.value,
151
- exprConditionType: ExprConditionType.AUTO,
152
- exprConditionTypes: [
153
- ExprConditionType.AUTO,
154
- ExprConditionType.ASSIGN,
155
- ExprConditionType.SCORE,
156
- ],
157
- };
158
- },
159
- computed: {
160
- totalScore() {
161
- return this.$rootComponent.currentSurvey.statistics.maxScore;
162
- },
163
- deletable() {
164
- return (
165
- _.size(
166
- _.filter(
167
- this.evaluationItems,
168
- (item) => item.type == ExprEvaluationItemType.IF
169
- )
170
- ) > 1
171
- );
172
- },
173
- disableAddConditionBtn() {
174
- let conditions = this.evaluationItems[this.position].conditions;
175
- let scoreConditions = _.size(
176
- _.filter(conditions, (item) => item.type == ExprConditionType.SCORE)
177
- );
178
- return (
179
- this.exprConditionType == ExprConditionType.SCORE && scoreConditions > 0
180
- );
181
- },
182
- },
183
- methods: {
184
- onAdd() {
185
- this.evaluationItems.splice(this.position + 1, 0, {
186
- id: `Evaluation-Item-${_.now()}-${_.random(0, 9999999)}`,
187
- type: ExprEvaluationItemType.IF,
188
- text: {
189
- "zh-CN": "",
123
+ export default Vue.extend({
124
+ name: "if",
125
+ mixins: [QuestionFormMixin],
126
+ components: {
127
+ Card,
128
+ Row,
129
+ Col,
130
+ Select,
131
+ Option,
132
+ Button,
133
+ Icon,
134
+ Condition,
135
+ FormItem,
136
+ Input,
137
+ },
138
+ props: {
139
+ value: {
140
+ type: Array,
141
+ required: true,
142
+ },
143
+ position: {
144
+ type: Number,
145
+ required: true,
146
+ },
147
+ },
148
+ watch: {
149
+ "exprConditionType": {
150
+ handler(newValue, oldValue) {
151
+ debugger
152
+ this.evaluationItems[this.position].conditions = [];
153
+ }
154
+ },
155
+ },
156
+ data() {
157
+ return {
158
+ evaluationItems: this.value,
159
+ exprConditionType: ExprConditionType.AUTO,
160
+ exprConditionTypes: [
161
+ ExprConditionType.AUTO,
162
+ ExprConditionType.ASSIGN,
163
+ ExprConditionType.SCORE,
164
+ ],
165
+ };
166
+ },
167
+ computed: {
168
+ totalScore() {
169
+ return this.$rootComponent.currentSurvey.statistics.maxScore;
170
+ },
171
+ deletable() {
172
+ return (
173
+ _.size(
174
+ _.filter(
175
+ this.evaluationItems,
176
+ (item) => item.type == ExprEvaluationItemType.IF
177
+ )
178
+ ) > 1
179
+ );
180
+ },
181
+ disableAddConditionBtn() {
182
+ let conditions = this.evaluationItems[this.position].conditions;
183
+ let scoreConditions = _.size(
184
+ _.filter(conditions, (item) => item.type == ExprConditionType.SCORE)
185
+ );
186
+ return (
187
+ this.exprConditionType == ExprConditionType.SCORE && scoreConditions > 0
188
+ );
189
+ },
190
+ },
191
+ methods: {
192
+ onAdd() {
193
+ this.evaluationItems.splice(this.position + 1, 0, {
194
+ id: `Evaluation-Item-${_.now()}-${_.random(0, 9999999)}`,
195
+ type: ExprEvaluationItemType.IF,
196
+ text: {
197
+ "zh-CN": "",
198
+ },
199
+ conditions: [],
200
+ });
201
+ },
202
+ onDelete() {
203
+ this.evaluationItems.splice(this.position, 1);
204
+ },
205
+ addCondition() {
206
+ this.evaluationItems[this.position].conditions ||
207
+ this.$set(this.evaluationItems[this.position], "conditions", []);
208
+ this.evaluationItems[this.position].conditions.push({
209
+ type: this.exprConditionType,
210
+ payload: this.buildPayloadByType(this.exprConditionType),
211
+ });
212
+ },
213
+ buildPayloadByType(type) {
214
+ if (type == ExprConditionType.SCORE) {
215
+ return {
216
+ minScore: null,
217
+ leftOperator: "<",
218
+ rightOperator: "<",
219
+ maxScore: null,
220
+ };
221
+ }
222
+ return {
223
+ scope: [],
224
+ operator: "=",
225
+ values: [],
226
+ size: 0,
227
+ };
228
+ },
229
+ removeCondition(index) {
230
+ this.evaluationItems[this.position].conditions.splice(index, 1);
231
+ },
232
+ expr(index, value) {
233
+ _.set(
234
+ this.evaluationItems[this.position].conditions[index],
235
+ "expr",
236
+ value
237
+ );
238
+ },
190
239
  },
191
- conditions: [],
192
- });
193
- },
194
- onDelete() {
195
- this.evaluationItems.splice(this.position, 1);
196
- },
197
- addCondition() {
198
- this.evaluationItems[this.position].conditions ||
199
- this.$set(this.evaluationItems[this.position], "conditions", []);
200
- this.evaluationItems[this.position].conditions.push({
201
- type: this.exprConditionType,
202
- payload: this.buildPayloadByType(this.exprConditionType),
203
- });
204
- },
205
- buildPayloadByType(type) {
206
- if (type == ExprConditionType.SCORE) {
207
- return {
208
- minScore: null,
209
- leftOperator: "<",
210
- rightOperator: "<",
211
- maxScore: null,
212
- };
213
- }
214
- return {
215
- scope: [],
216
- operator: "=",
217
- values: [],
218
- size: 0,
219
- };
220
- },
221
- removeCondition(index) {
222
- this.evaluationItems[this.position].conditions.splice(index, 1);
223
- },
224
- expr(index, value) {
225
- _.set(
226
- this.evaluationItems[this.position].conditions[index],
227
- "expr",
228
- value
229
- );
230
- },
231
- },
232
- });
240
+ });
233
241
  </script>
234
242
  <style scoped lang="less">
235
- .mt-base {
236
- margin-top: 12px;
237
- }
243
+ .mt-base {
244
+ margin-top: 12px;
245
+ }
238
246
 
239
- .action {
240
- float: right;
241
- }
247
+ .action {
248
+ float: right;
249
+ }
242
250
 
243
- .input {
244
- width: 100px;
245
- }
251
+ .input {
252
+ width: 100px;
253
+ }
246
254
 
247
- .label {
248
- text-align: right;
249
- padding-right: 4px;
250
- }
255
+ .label {
256
+ text-align: right;
257
+ padding-right: 4px;
258
+ }
251
259
 
252
- .text {
253
- background-color: #ebf7ff;
254
- height: 32px;
255
- padding: 8px 18px;
256
- font-weight: 500;
257
- color: #515a6e;
258
- }
260
+ .text {
261
+ background-color: #ebf7ff;
262
+ height: 32px;
263
+ padding: 8px 18px;
264
+ font-weight: 500;
265
+ color: #515a6e;
266
+ }
259
267
 
260
- /deep/ .ivu-card .ivu-form-item {
261
- margin-bottom: 4px;
262
- margin-top: 0;
263
- }
268
+ /deep/ .ivu-card .ivu-form-item {
269
+ margin-bottom: 4px;
270
+ margin-top: 0;
271
+ }
264
272
 
265
- /deep/ .ivu-card .ivu-form-item-error {
266
- margin-bottom: 24px;
267
- margin-top: 0;
268
- }
273
+ /deep/ .ivu-card .ivu-form-item-error {
274
+ margin-bottom: 24px;
275
+ margin-top: 0;
276
+ }
269
277
  </style>
@@ -231,6 +231,7 @@ export default Vue.extend({
231
231
  }
232
232
  },
233
233
  disabledScoreOption(value, type) {
234
+ debugger
234
235
  if (this.checkValueInOtherRange(value)) {
235
236
  return true;
236
237
  }