dk-form.wxml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <wxs src='../../../utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
  2. <view class="{{!transparentStyle ? 'dk-card-outer-class' : ''}}">
  3. <!-- 单据信息 -->
  4. <view class="{{!transparentStyle ? 'dk-card-class' : ''}}" wx:for="{{cardList}}" wx:for-item="card" data-item="{{card}}">
  5. <view wx:for="{{contentObj[card]}}" wx:for-item="item" data-item="{{item}}" wx:key="index">
  6. <!--邮箱-->
  7. <van-field wx:if="{{item.type=='email' && !item.hide}}" required="{{item.required?true:false }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" clearable readonly="{{!!item.readonly}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" upperFlag="{{ (item.upperFlag || item.upperFlag == undefined) ?true:false}}" maxlength="{{item.maxlength?item.maxlength:50}}" right-icon="{{item.rightIcon}}" bind:change="changeField" bind:blur="blurField" bind:clear="clearField" catchtap="openStr" errorMessage="{{item.errMsg}}">
  8. <!-- <van-icon wx:if="{{item.tip}}" slot="label-icon" name="question-o" data-item="{{item}}" catchtap="showTip" /> -->
  9. <dk-tip wx:if="{{item.tip}}" slot="label-icon" style="display: inline-block;" id="{{item.code}}" Up="{{true}}" Right="{{true}}" tipContent='{{item.tip}}' bind:clickTip="clickTip"></dk-tip>
  10. </van-field>
  11. <!--文本框-->
  12. <van-field wx:if="{{item.type=='str' && !item.hide}}" required="{{item.required?true:false }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" clearable readonly="{{!!item.readonly}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" maxlength="{{item.maxlength?item.maxlength:50}}" right-icon="{{item.rightIcon}}" bind:change="changeField" bind:blur="blurField" bind:clear="clearField" catchtap="openStr" errorMessage="{{item.errMsg}}">
  13. <!-- <van-icon wx:if="{{item.tip}}" slot="label-icon" name="question-o" data-item="{{item}}" catchtap="showTip" /> -->
  14. <dk-tip wx:if="{{item.tip}}" slot="label-icon" style="display: inline-block;" id="{{item.code}}" Up="{{true}}" Right="{{true}}" tipContent='{{item.tip}}' bind:clickTip="clickTip"></dk-tip>
  15. </van-field>
  16. <!--单选下拉-->
  17. <van-field wx:if="{{item.type=='drop' && !item.hide}}" required="{{item.required?true:false }}" data-name="{{item.name}}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" value="{{ form[item.name]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" is-link catchtap="open" autosize border="{{ false }}" readonly="{{true}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" data-type='{{item.dropType}}' errorMessage="{{item.errMsg}}">
  18. <van-icon wx:if="{{!readonly && form[item.code]&& (item.clear || item.clear == undefined)}}" slot="icon" name="clear" color="#c8c9cc;" data-name="{{item.name}}" data-key="{{item.code}}" data-item="{{item}}" catchtap="clearChoose"></van-icon>
  19. </van-field>
  20. <!--多选下拉-->
  21. <van-field wx:if="{{item.type=='mutidrop' && !item.hide}}" required="{{item.required?true:false }}" data-name="{{item.name}}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" value="{{ form[item.name + 's']}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" is-link catchtap="open" autosize border="{{ false }}" readonly="{{true}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" data-type='{{item.dropType}}' errorMessage="{{item.errMsg}}">
  22. <van-icon wx:if="{{!readonly && form[item.code]&& (item.clear || item.clear == undefined)}}" slot="icon" name="clear" color="#c8c9cc;" data-name="{{item.name}}" data-key="{{item.code}}" data-item="{{item}}" catchtap="clearChoose"></van-icon>
  23. </van-field>
  24. <!--选单-->
  25. <van-field wx:if="{{item.type=='choose' && !item.hide}}" required="{{item.required?true:false }}" data-name="{{item.name}}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" value="{{ form[item.name]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{item.placeholder ? item.placeholder : wxmlUtil.setPlaceholder($t, item.title?item.title:item.code)}}" is-link catchtap="open" autosize border="{{ false }}" readonly="{{true}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" data-type='{{item.dropType}}' errorMessage="{{item.errMsg}}">
  26. <van-icon wx:if="{{!readonly && !item.readonly && form[item.code]&& (item.clear || item.clear == undefined)}}" slot="icon" name="clear" color="#c8c9cc;" data-name="{{item.name}}" data-key="{{item.code}}" data-item="{{item}}" catchtap="clearChoose"></van-icon>
  27. </van-field>
  28. <van-field wx:if="{{item.type=='chooseAndStr' && !item.hide}}" required="{{item.required?true:false }}" data-name="{{item.name}}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" value="{{ form[item.name]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{item.placeholder ? item.placeholder : wxmlUtil.setPlaceholder($t, item.title?item.title:item.code)}}" bind:click-icon="open" autosize border="{{ false }}" readonly="{{false}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" bind:change="changeField" input-class="dk-cell-value-class" data-type='{{item.dropType}}' errorMessage="{{item.errMsg}}">
  29. <van-icon name="arrow" slot="icon" catchtap="open" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" />
  30. </van-field>
  31. <!--选择框-->
  32. <van-field wx:if="{{item.type=='checkbox' && !item.hide}}" input-width="200rpx" input-class="dk-cell-value-class" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" autosize border="{{ false }}" readonly="{{true}}" errorMessage="{{item.errMsg}}">
  33. <view slot="end" style="text-align: right;padding-left: 10rpx;" data-item="{{item}}" data-index="{{index}}" data-value="{{form[item.code]}}" data-key="{{item.code}}" catchtap="onChange">
  34. <van-checkbox shape="round" value="{{form[item.code]}}" />
  35. </view>
  36. </van-field>
  37. <!--开关-->
  38. <van-field wx:if="{{item.type=='switch'}}" input-width="200rpx" input-class="dk-cell-value-class" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-align="right" label="{{item.title?item.title:$t[item.code]}}" autosize border="{{ false }}" readonly="{{true}}" errorMessage="{{item.errMsg}}">
  39. <!-- <van-icon wx:if="{{item.tip}}" slot="label-icon" name="question-o" data-item="{{item}}" catchtap="showTip" /> -->
  40. <dk-tip wx:if="{{item.tip}}" slot="label-icon" style="display: inline-block;" id="{{item.code}}" Up="{{true}}" Right="{{true}}" tipContent='{{item.tip}}' bind:clickTip="clickTip"></dk-tip>
  41. <view slot="inputbefor" style="width:100%;text-align: left;padding-top: 5rpx;">
  42. <van-switch size="20px" checked="{{ form[item.code]}}" bind:change="onChange" active-color="#3E69F6" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" data-value="{{form[item.code]}}" data-key="{{item.code}}" disabled="{{item.disabled}}" />
  43. </view>
  44. </van-field>
  45. <view wx:if="{{item.type=='text'}}" style="font-size:11px;margin-left:16px;color:red;margin-top: 4px;">
  46. {{item.text}}
  47. </view>
  48. <!-- 是否 -->
  49. <van-field wx:if="{{item.type=='checkedBox'}}" input-width="200rpx" input-class="dk-cell-value-class" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-align="right" label="{{item.title?item.title:$t[item.code]}}" autosize border="{{ false }}" readonly="{{true}}" errorMessage="{{item.errMsg}}">
  50. <view slot="inputbefor" style="text-align: left;padding-top: 5rpx;display: flex;">
  51. <van-checkbox value="{{ form[item.code]}}" data-item="{{item}}" data-index="{{index}}" data-key="{{item.code}}" data-card="{{card}}" data-value="{{form[item.code]}}" bind:change="onChangeCheckedBoxYes">
  52. <view>
  53. </view>
  54. </van-checkbox>
  55. <van-checkbox value="{{ !form[item.code]}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" data-value="{{form[item.code]}}" data-key="{{item.code}}" bind:change="onChangeCheckedBoxNo" style="margin-left: 40rpx;">
  56. <view>
  57. </view>
  58. </van-checkbox>
  59. </view>
  60. </van-field>
  61. <!--日期-->
  62. <van-field wx:if="{{item.type=='date'}}" required="{{item.required?true:false }}" is-link value="{{ form[item.code]}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" data-item="{{item}}" data-key="{{item.code}}" data-index="{{index}}" data-card="{{card.name}}" errorMessage="{{item.errMsg}}" clearable border="{{ false }}" readonly="{{true}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" catchtap="openDatePop">
  63. <van-icon wx:if="{{!readonly && !item.readonly && form[item.code]}}" slot="icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearDate"></van-icon>
  64. </van-field>
  65. <!-- 日期范围 -->
  66. <van-field wx:if="{{item.type=='dateDay'}}" required="{{item.required?true:false }}" is-link value="{{ form[item.code]}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" data-item="{{item}}" data-key="{{item.code}}" data-index="{{index}}" data-card="{{card.name}}" errorMessage="{{item.errMsg}}" clearable border="{{ false }}" readonly="{{true}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" catchtap="openDatePopDay">
  67. <van-icon wx:if="{{!readonly && form[item.code]}}" slot="icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearDate"></van-icon>
  68. </van-field>
  69. <!--时间-->
  70. <van-field wx:if="{{item.type=='dateTime'}}" required="{{item.required?true:false }}" is-link value="{{ form[item.code]}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" data-item="{{item}}" data-key="{{item.code}}" data-index="{{index}}" data-card="{{card.name}}" errorMessage="{{item.errMsg}}" border="{{ false }}" clearable readonly="{{true}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" catchtap="openDatePopTime">
  71. <van-icon wx:if="{{!readonly && form[item.code]}}" slot="icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearDate"></van-icon>
  72. </van-field>
  73. <!-- 跟进提醒时间 -->
  74. <van-field wx:if="{{item.type=='remindDateTime'}}" required="{{item.required?true:false }}" is-link value="{{ form[item.code]}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" data-item="{{item}}" data-key="{{item.code}}" data-index="{{index}}" data-card="{{card.name}}" errorMessage="{{item.errMsg}}" border="{{ false }}" clearable readonly="{{true}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" catchtap="openRemindDatePopTime">
  75. <van-icon wx:if="{{!readonly && form[item.code]}}" slot="icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearDate"></van-icon>
  76. </van-field>
  77. <!--tab标签-->
  78. <van-field wx:if="{{item.type=='tabs' && !item.hide}}" input-width="200rpx" input-class="dk-cell-value-class" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" autosize border="{{ false }}" readonly="{{true}}" errorMessage="{{item.errMsg}}">
  79. <view slot="inputbefor" style="text-align: left;padding-left: 10rpx;" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" data-value="{{form[item.code]}}" data-key="{{item.code}}" catchtap="changeTabs">
  80. <dk-tabs-custom model:value="{{form[item.code]}}" bind:change="changeTabs" data-key="{{item.code}}" list="{{item.tagList}}" />
  81. </view>
  82. </van-field>
  83. <!--客户地址-->
  84. <van-field wx:if="{{item.type=='address' && !item.hide}}" input-width="200rpx" input-class="dk-cell-value-class" required="{{item.required?true:false }}" input-align="left" data-key="address" type="textarea" value="{{ wxmlUtil.addressToIndexOf(form.address.address) }}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" data-type='address' catchtap="onClickWxchartAddress" readonly="{{true}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" errorMessage="{{item.errMsg}}">
  85. <view style="display: flex;" slot="right-icon">
  86. <van-icon wx:if="{{!readonly && !item.readonly && form.address.address}}" slot="right-icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearAddress"></van-icon>
  87. <van-icon custom-style="padding-left:10rpx" name="location"></van-icon>
  88. </view>
  89. </van-field>
  90. <!--联系电话-->
  91. <dk-number-phone-input wx:if="{{item.type=='phone' && !item.hide}}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" required="{{item.required?true:false }}" clearable rightIcon="phone" model:value="{{ form[item.code]}}" bind:changeField="changePhone" bind:clear="clearField" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" bind:changeFieldblur="changePhoneblur" readonly="{{item.readonly}}" errorMessage="{{item.errMsg}}" id="{{item.code}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.code)}}"></dk-number-phone-input>
  92. <!--数字类-->
  93. <dk-number-input wx:if="{{item.type=='number' && !item.hide}}" id="{{item.code}}" code="{{item.code}}" sign="{{(item.sign || item.sign == '')?item.sign:'¥'}}" digits="{{(item.digits || item.digits == 0)?item.digits:2}}" fontSize="14" left="30rpx" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" center="left" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" errorMessage="{{item.errMsg}}" titleValue="{{item.title?item.title:$t[item.code]}}" negative="{{item.negative}}" max="{{item.max}}" maxFlag="{{item.maxFlag}}" min="{{item.min}}" inputColor="#FF7B1A" titleFontWeight="normal" titleColor="{{!!item.readonly?'#95A8CB':'#002340'}}" readonly="{{!!item.readonly}}" required="{{item.required}}" tip="{{item.tip}}" inputValue="{{form[item.code]}}" bind:triggerBindValue="changeNumberField" bind:triggerBindBlur="triggerBindBlur" bind:clickTip ="clickTip"></dk-number-input>
  94. <!--备注-->
  95. <van-field wx:if="{{item.type=='textarea' && !item.hide}}" rows="{{item.rows}}" show-word-limit="{{item.showWordLimit}}" type="textarea" required="{{item.required?true:false }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" readonly="{{!!item.readonly}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class {{item.rows ? 'input-rows-class' : ''}}" maxlength="{{item.maxlength?item.maxlength:500}}" right-icon="{{item.rightIcon}}" bind:change="changeField" bind:blur="blurField" errorMessage="{{item.errMsg}}">
  96. <!-- <van-icon wx:if="{{item.tip}}" slot="label-icon" name="question-o" data-item="{{item}}" catchtap="showTip" /> -->
  97. <dk-tip wx:if="{{item.tip}}" slot="label-icon" style="display: inline-block;" id="{{item.code}}" Up="{{true}}" Right="{{true}}" tipContent='{{item.tip}}' bind:clickTip="clickTip"></dk-tip>
  98. </van-field>
  99. <!--有换行按钮的备注 (打印备注设置再用)-->
  100. <van-field wx:if="{{item.type=='printRmark' && !item.hide}}" rows="{{item.rows}}" show-word-limit="{{item.showWordLimit}}" type="textarea" required="{{item.required?true:false }}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" value="{{ form[item.code]}}" input-align="left" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" autosize border="{{ false }}" readonly="{{!!item.readonly}}" label-class="{{!!item.readonly?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class {{item.rows ? 'input-rows-class' : ''}}" maxlength="{{item.maxlength?item.maxlength:500}}" right-icon="{{item.rightIcon}}" bind:change="changeField" bind:blur="blurField" errorMessage="{{item.errMsg}}">
  101. <!-- <van-icon wx:if="{{item.tip}}" slot="label-icon" name="question-o" data-item="{{item}}" catchtap="showTip" /> -->
  102. <dk-tip wx:if="{{item.tip}}" slot="label-icon" style="display: inline-block;" id="{{item.code}}" Up="{{true}}" Right="{{true}}" tipContent='{{item.tip}}' bind:clickTip="clickTip"></dk-tip>
  103. <van-button slot="end" size='small'data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card}}" bind:click="wrapClick" type="default">换行
  104. </van-button>
  105. </van-field>
  106. <!--附件-->
  107. <view style="display:flex;width:100%;margin: 1vw; padding-top: 20rpx;" wx:if="{{item.type=='uploader'}}">
  108. <view style="width: 168rpx; flex:1;color: #95A8CB;font-size: 14px;padding-left: 20rpx;">{{item.name?item.name:'附件'}}</view>
  109. <view style="width: calc(100% - 168rpx);text-align: left;">
  110. <van-uploader max-count="{{uploaderMAX}}" disabled="{{!!item.readonly}}" accept="image" style="margin-left: 4%;border-radius: 15rpx;" preview-size="160rpx;" file-list="{{ form['annexPaths'] }}" bind:delete="deleteImg" bind:after-read="afterRead" bind:error="uploadError" catchtap="clickAttach" bind:click-preview="clickPreview" multiple="true" imageFit="aspectFit" max-size="{{maxSize}}" bind:oversize="overSize" />
  111. <view style="margin-left: 27rpx;color: #C8C9CC;font-size: 12px;">
  112. 图片最多上传{{uploaderMAX}}张
  113. </view>
  114. </view>
  115. </view>
  116. </view>
  117. </view>
  118. </view>
  119. <!--单选-->
  120. <dk-single-dropdown-item show="{{show}}" typeName='{{dropType}}' bind:commit='chooseData' bind:muticlose='muticlose'></dk-single-dropdown-item>
  121. <!--多选-->
  122. <dk-muti-dropdown-item show="{{mutishow}}" typeName='{{dropType}}' bind:commit='chooseData' bind:muticlose='muticlose'></dk-muti-dropdown-item>
  123. <!--日期-->
  124. <van-popup show="{{ showDate }}" custom-style="border-radius:30rpx 30rpx 0 0;" position="bottom" bind:close="cancelDatePop">
  125. <van-datetime-picker type="dateTime" value="{{ currentDate }}" bind:confirm="chooseDate" bind:cancel="cancelDatePop" loading="{true}" />
  126. </van-popup>
  127. <!--日期-->
  128. <van-popup show="{{ showDateTime }}" custom-style="border-radius:30rpx 30rpx 0 0;" position="bottom" bind:close="cancelDatePopTime">
  129. <van-datetime-picker type="datetime" value="{{ currentDate }}" bind:confirm="chooseDateTime" bind:cancel="cancelDatePopTime" loading="{true}" />
  130. </van-popup>
  131. <dk-dropdown-date-day show="{{showDateDay}}" bind:dateCommit="pickDateCommit"></dk-dropdown-date-day>