Commit afd3509a89a8a8bf6bd6fd1f4d51ee03311cac66

Authored by 梁灏
1 parent 3b005863

update Transfer

update Transfer
src/components/transfer/search.vue
@@ -28,6 +28,14 @@ @@ -28,6 +28,14 @@
28 if (this.query === '') return; 28 if (this.query === '') return;
29 this.query = ''; 29 this.query = '';
30 } 30 }
  31 + },
  32 + events: {
  33 + 'on-form-blur' () {
  34 + return false;
  35 + },
  36 + 'on-form-change' () {
  37 + return false;
  38 + }
31 } 39 }
32 }; 40 };
33 </script> 41 </script>
src/components/transfer/transfer.vue
@@ -172,6 +172,7 @@ @@ -172,6 +172,7 @@
172 172
173 this.$refs[opposite].toggleSelectAll(false); 173 this.$refs[opposite].toggleSelectAll(false);
174 this.$emit('on-change', newTargetKeys, direction, moveKeys); 174 this.$emit('on-change', newTargetKeys, direction, moveKeys);
  175 + this.$dispatch('on-form-change', newTargetKeys, direction, moveKeys);
175 } 176 }
176 }, 177 },
177 watch: { 178 watch: {
test/routers/form.vue
1 <template> 1 <template>
2 - <div style="width: 400px"> 2 + <div style="width: 600px">
3 <i-form v-ref:form :model="form" :rules="rules" :label-width="100" label-position="right"> 3 <i-form v-ref:form :model="form" :rules="rules" :label-width="100" label-position="right">
4 <form-item label="邮箱" prop="mail"> 4 <form-item label="邮箱" prop="mail">
5 <i-input :value.sync="form.mail" placeholder="请输入邮箱"> 5 <i-input :value.sync="form.mail" placeholder="请输入邮箱">
@@ -158,6 +158,13 @@ @@ -158,6 +158,13 @@
158 <form-item label="级联" prop="cascader"> 158 <form-item label="级联" prop="cascader">
159 <Cascader :data="data" :value.sync="form.cascader"></Cascader> 159 <Cascader :data="data" :value.sync="form.cascader"></Cascader>
160 </form-item> 160 </form-item>
  161 + <form-item label="穿梭框" prop="targetKeys1">
  162 + <Transfer
  163 + :data="form.transfer"
  164 + :target-keys="form.targetKeys1"
  165 + :render-format="render1"
  166 + @on-change="handleChange1"></Transfer>
  167 + </form-item>
161 <form-item> 168 <form-item>
162 <i-button type="primary" @click="onSubmit('form')">提交</i-button> 169 <i-button type="primary" @click="onSubmit('form')">提交</i-button>
163 </form-item> 170 </form-item>
@@ -253,7 +260,9 @@ @@ -253,7 +260,9 @@
253 slider: [40, 50], 260 slider: [40, 50],
254 date: '', 261 date: '',
255 date2: '', 262 date2: '',
256 - cascader: [] 263 + cascader: [],
  264 + transfer: this.getMockData(),
  265 + targetKeys1: this.getTargetKeys()
257 }, 266 },
258 rules: { 267 rules: {
259 mail: [ 268 mail: [
@@ -328,6 +337,11 @@ @@ -328,6 +337,11 @@
328 { 337 {
329 type: 'array', required: true 338 type: 'array', required: true
330 } 339 }
  340 + ],
  341 + targetKeys1: [
  342 + {
  343 + type: 'array', min: 8, max: 10
  344 + }
331 ] 345 ]
332 } 346 }
333 } 347 }
@@ -346,6 +360,32 @@ @@ -346,6 +360,32 @@
346 }, 360 },
347 c (s) { 361 c (s) {
348 console.log(this.form.date) 362 console.log(this.form.date)
  363 + },
  364 + getMockData () {
  365 + let mockData = [];
  366 + for (let i = 1; i <= 20; i++) {
  367 + mockData.push({
  368 + key: i.toString(),
  369 + label: '内容' + i,
  370 + description: '内容' + i + '的描述信息',
  371 + disabled: Math.random() * 3 < 1
  372 + });
  373 + }
  374 + return mockData;
  375 + },
  376 + getTargetKeys () {
  377 + return this.getMockData()
  378 + .filter(() => Math.random() * 2 > 1)
  379 + .map(item => item.key);
  380 + },
  381 + render1 (item) {
  382 + return item.label;
  383 + },
  384 + handleChange1 (newTargetKeys, direction, moveKeys) {
  385 + console.log(newTargetKeys);
  386 + console.log(direction);
  387 + console.log(moveKeys);
  388 + this.form.targetKeys1 = newTargetKeys;
349 } 389 }
350 } 390 }
351 }; 391 };