RoleCurdFieldTab.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. <template>
  2. <div>
  3. <h3>{{ tab.name }}</h3>
  4. <div v-if="tabRoleCurdFieldDtos && tabRoleCurdFieldDtos.length > 0">
  5. <table class="fixed-table table table-striped table-bordered">
  6. <thead>
  7. <tr>
  8. <th style="width: 150px; text-align: center">字段名称</th>
  9. <th style="width: 150px; text-align: center">隐藏</th>
  10. <th style="width: 150px; text-align: center">只读</th>
  11. <th style="width: 150px; text-align: center">约束条件</th>
  12. </tr>
  13. </thead>
  14. <tbody>
  15. <tr
  16. v-for="(item, index) in tabRoleCurdFieldDtos"
  17. :key="'roleCurdFieldTab_field_' + index"
  18. >
  19. <template v-if="item.tabName == tab.name">
  20. <td>{{ item.displayName }}</td>
  21. <td v-if="item.mandatory == true" style="text-align: center">
  22. <input
  23. v-model="item.invisible"
  24. autocomplete="off"
  25. type="checkbox"
  26. name="checkboxinput"
  27. :checked="item.checked"
  28. disabled="disabled"
  29. @click="item.checked = !item.checked"
  30. />
  31. </td>
  32. <td v-else>
  33. <input
  34. v-model="item.invisible"
  35. autocomplete="off"
  36. type="checkbox"
  37. name="checkboxinput"
  38. :checked="item.checked"
  39. @click="item.checked = !item.checked"
  40. />
  41. </td>
  42. <td style="text-align: center">
  43. <input
  44. v-model="item.readonly"
  45. autocomplete="off"
  46. type="checkbox"
  47. name="checkboxinput"
  48. :checked="item.checked"
  49. @click="item.checked = !item.checked"
  50. />
  51. </td>
  52. <td style="text-align: center">
  53. <input
  54. v-model="item.whereClause"
  55. autocomplete="off"
  56. class="form-control"
  57. aria-describedby="basic-addon1"
  58. />
  59. </td>
  60. </template>
  61. </tr>
  62. </tbody>
  63. </table>
  64. </div>
  65. </div>
  66. </template>
  67. <script>
  68. import Common from '../common/Common.js';
  69. import RoleCurdFieldResource from '../api/base/RoleCurdFieldResource.js';
  70. export default {
  71. components: {
  72. },
  73. props: {
  74. tab: {
  75. type: Object,
  76. default: function(){
  77. return null;
  78. },
  79. },
  80. roleCurdFieldList: {
  81. type: Array,
  82. default: function(){
  83. return null;
  84. },
  85. },
  86. roleId: {
  87. type: Number,
  88. default: null,
  89. },
  90. curdWindowNo: {
  91. type: String,
  92. default: null,
  93. },
  94. },
  95. data: function () {
  96. return {
  97. roleCurdFieldDtoList: [],
  98. curdWindowDto: {
  99. no: undefined,
  100. tabs: [],
  101. },
  102. tabRoleCurdFieldDtos: [],
  103. };
  104. },
  105. watch: {
  106. roleCurdFieldList: function (newValue, oldValue) {
  107. this.composite();
  108. },
  109. roleId: function (newValue, oldValue) {
  110. this.composite();
  111. },
  112. },
  113. mounted: function () {
  114. var _self = this;
  115. _self.composite();
  116. },
  117. methods: {
  118. /**
  119. * 获取界面变动的数据
  120. * @author LiangZhiCheng 20210324
  121. */
  122. getData: function () {
  123. var _self = this;
  124. var tempRoleCurdFields = [];
  125. _self.tabRoleCurdFieldDtos.forEach(item => {
  126. if (
  127. item.readonly == true ||
  128. item.invisible == true ||
  129. (item.whereClause != undefined && item.whereClause != '')
  130. ) {
  131. var roleCurdField = {
  132. roleId: _self.roleId,
  133. curdWindowNo: _self.curdWindowNo,
  134. tabName: item.tabName,
  135. fieldName: item.fieldName,
  136. displayName: item.displayName,
  137. entityFieldIndex: item.entityFieldIndex,
  138. invisible: item.invisible,
  139. readonly: item.readonly,
  140. whereClause: item.whereClause,
  141. };
  142. Object.assign(item, roleCurdField);
  143. tempRoleCurdFields.push(roleCurdField);
  144. }
  145. });
  146. return tempRoleCurdFields;
  147. },
  148. /**
  149. * 将CurdWindow查询到的数据和RoleCurdField表中的数据相结合
  150. * @author LiangZhiCheng 20210324
  151. */
  152. composite: function () {
  153. var _self = this;
  154. _self.tabRoleCurdFieldDtos.splice(0, _self.tabRoleCurdFieldDtos.length);
  155. if (
  156. _self.tab == undefined ||
  157. _self.tab.tabFormView == undefined ||
  158. _self.tab.tabFormView.tabFormFields == undefined
  159. ) {
  160. return;
  161. }
  162. console.log(_self.tab);
  163. for (var i = 0; i < _self.tab.tabFormView.tabFormFields.length; i++) {
  164. var tabFormField = _self.tab.tabFormView.tabFormFields[i];
  165. var roleCurdFieldDto = {
  166. tabName: _self.tab.name,
  167. fieldName: tabFormField.fieldName,
  168. displayName: tabFormField.displayName,
  169. entityFieldIndex: tabFormField.entityFieldIndex,
  170. mandatory: undefined,
  171. readonly: undefined,
  172. invisible: undefined,
  173. whereClause: undefined,
  174. };
  175. // console.log(_self.roleCurdFieldList);
  176. // console.log(_self.roleCurdFieldList.length);
  177. if (
  178. _self.roleCurdFieldList != null &&
  179. _self.roleCurdFieldList.length > 0
  180. ) {
  181. _self.roleCurdFieldList.forEach(item => {
  182. console.log(
  183. item.tabName == _self.tab.name &&
  184. item.fieldName == tabFormField.fieldName &&
  185. item.entityFieldIndex == tabFormField.entityFieldIndex &&
  186. (item.readonly == true ||
  187. item.invisible == true ||
  188. (item.whereClause != undefined && item.whereClause != '')),
  189. );
  190. if (
  191. item.tabName == _self.tab.name &&
  192. item.fieldName == tabFormField.fieldName &&
  193. item.entityFieldIndex == tabFormField.entityFieldIndex &&
  194. (item.readonly == true ||
  195. item.invisible == true ||
  196. (item.whereClause != undefined && item.whereClause != ''))
  197. ) {
  198. roleCurdFieldDto.invisible = item.invisible;
  199. roleCurdFieldDto.readonly = item.readonly;
  200. roleCurdFieldDto.whereClause = item.whereClause;
  201. }
  202. });
  203. }
  204. for (
  205. var j = 0;
  206. j < _self.tab.tabDataSource.tabDataSourceFields.length;
  207. j++
  208. ) {
  209. var mandatorys = _self.tab.tabDataSource.tabDataSourceFields[j];
  210. if (mandatorys.fieldName == roleCurdFieldDto.fieldName) {
  211. roleCurdFieldDto.mandatory = mandatorys.mandatory;
  212. break;
  213. }
  214. }
  215. _self.tabRoleCurdFieldDtos.push(roleCurdFieldDto);
  216. }
  217. },
  218. },
  219. };
  220. </script>