移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

approvalAdd13.vue 13 KiB

1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. <template>
  2. <div class="app-container">
  3. <van-nav-bar
  4. left-arrow
  5. fixed
  6. placeholder
  7. @click-left="$router.back(-1)"
  8. >
  9. <template #title>
  10. <p style="font-weight: bold;">添加重大事项</p>
  11. </template>
  12. <!-- <template #right>-->
  13. <!-- <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/>-->
  14. <!-- </template>-->
  15. </van-nav-bar>
  16. <van-form @submit="getChange" @failed="getError" :show-error-message="false" scroll-to-error validate-first>
  17. <p class="main_title">基础信息</p>
  18. <div class="main_box">
  19. <van-field
  20. label="事项名称"
  21. v-model="form.eventName"
  22. placeholder="请输入事项名称"
  23. input-align="right"
  24. label-width="auto"
  25. required
  26. :rules="[{ required: true , message:'请输入事项名称' }]"
  27. />
  28. <van-field
  29. readonly
  30. clickable
  31. required
  32. :rules="[{ required: true , message:'请选择事项类型' }]"
  33. label="事项类型"
  34. placeholder="请选择"
  35. v-model="majorType"
  36. @click="showcapital = true"
  37. input-align="right"
  38. right-icon="arrow-down"
  39. label-width="auto"
  40. />
  41. <van-popup v-model="showcapital" position="bottom">
  42. <van-picker
  43. show-toolbar
  44. :columns="majorTypeOptions"
  45. @confirm="onConfirmCapital"
  46. @cancel="showcapital = false"
  47. />
  48. </van-popup>
  49. <van-field
  50. readonly
  51. clickable
  52. required
  53. :rules="[{ required: true , message:'请选择发生日期' }]"
  54. v-model="form.eventTime"
  55. label="发生日期"
  56. placeholder="请选择发生日期"
  57. @click="showlasj = true"
  58. input-align="right"
  59. right-icon="arrow-down"
  60. />
  61. <van-popup v-model="showlasj" position="bottom">
  62. <van-datetime-picker
  63. v-model="currentDate"
  64. type="date"
  65. title="选择年月日"
  66. :min-date="minDate"
  67. :max-date="maxDate"
  68. @confirm="onConfirmLasj"
  69. @cancel="showlasj = false"
  70. />
  71. </van-popup>
  72. <van-field
  73. readonly
  74. clickable
  75. label="审批流程"
  76. placeholder="请选择"
  77. v-model="form.approvalTemplateName"
  78. @click="showtemplate = true"
  79. input-align="right"
  80. right-icon="arrow-down"
  81. required
  82. :rules="[{ required: true , message:'请选择审批流程' }]"
  83. />
  84. <van-popup v-model="showtemplate" position="bottom">
  85. <van-picker
  86. show-toolbar
  87. value-key="name"
  88. :columns="templateList"
  89. @confirm="onConfirmTemplate"
  90. @cancel="showtemplate = false"
  91. />
  92. </van-popup>
  93. <van-field
  94. label="事项内容"
  95. input-align="right"
  96. label-width="auto"
  97. readonly
  98. />
  99. <van-field
  100. v-model="form.eventContent"
  101. type="textarea"
  102. placeholder="请输入事项内容"
  103. rows="4"
  104. required
  105. :rules="[{ required: true , message:'请输入事项内容' }]"
  106. />
  107. <van-field label="理事会提议" input-align="right" label-width="auto" readonly />
  108. <van-field v-model="form.dzbty" type="textarea" placeholder="请输入理事会提议/村党支部提议" rows="2" required :rules="[{ required: true , message:'请输入理事会提议/村党支部提议' }]" />
  109. <van-field label="村党支部和理事会商议" input-align="right" label-width="auto" readonly />
  110. <van-field v-model="form.lwhsy" type="textarea" placeholder="请输入村党支部和理事会商议/两委会商议" rows="2" required :rules="[{ required: true , message:'请输入村党支部和理事会商议/两委会商议' }]" />
  111. <van-field label="党员会审议" input-align="right" label-width="auto" readonly />
  112. <van-field v-model="form.dqyshsyhjy" type="textarea" placeholder="请输入党员会审议/党群议事会审议和决议" rows="2" required :rules="[{ required: true , message:'请输入党员会审议/党群议事会审议和决议' }]" />
  113. <van-field label="成员(代表)会决议" input-align="right" label-width="auto" readonly />
  114. <van-field v-model="form.cydbhjy" type="textarea" placeholder="请输入成员(代表)会决议/党群议事会审议和决议" rows="2" required :rules="[{ required: true , message:'请输入成员(代表)会决议/党群议事会审议和决议' }]" />
  115. <van-field label="决策结果公开" input-align="right" label-width="auto" readonly />
  116. <van-field v-model="form.jcjggk" type="textarea" placeholder="请输入决策结果公开" rows="2" required :rules="[{ required: true , message:'请输入决策结果公开' }]" />
  117. <van-field label="实施情况公开" input-align="right" label-width="auto" readonly />
  118. <van-field v-model="form.ssqkgk" type="textarea" placeholder="请输入实施情况公开" rows="2" required :rules="[{ required: true , message:'请输入实施情况公开' }]" />
  119. <van-field label="备注" input-align="right" label-width="auto"/>
  120. <van-field v-model="form.remark" type="textarea" placeholder="请输入备注" rows="2"/>
  121. </div>
  122. <!-- <p class="main_title">上传附件</p>-->
  123. <!-- <div class="main_box" style="padding: 5px 0 0 8px;">-->
  124. <!-- <van-uploader v-model="fileList" :after-read="beforeRead" @delete="deleteFile"></van-uploader>-->
  125. <!-- </div>-->
  126. <div style="padding: 16px 0;">
  127. <van-row>
  128. <van-col span="6"></van-col>
  129. <van-col span="12" align="center">
  130. <!-- @click="goUpdate"-->
  131. <van-button type="info" native-type="submit" @click="buttonType='update'" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button>
  132. </van-col>
  133. <!-- <van-col span="12" align="center">-->
  134. <!-- &lt;!&ndash; @click="goAdd"&ndash;&gt;-->
  135. <!-- <van-button type="info" native-type="submit" @click="buttonType='add'" class="submitButton">保存并提交</van-button>-->
  136. <!-- </van-col>-->
  137. </van-row>
  138. <div class="clear"></div>
  139. </div>
  140. </van-form>
  141. </div>
  142. </template>
  143. <script>
  144. import {addMajorevent , customSubmitMajorevent , attachmentList,listTemplate,selectApprovalByTemplateId } from "@/api/onlineHome/bankAgriculture/paymentApproval";
  145. import request from '@/utils/request';
  146. import Dialog from "vant/lib/dialog";
  147. import Editor from '@/components/Editor';
  148. import moment from "moment";
  149. export default {
  150. name: "approvalAdd3",
  151. components: {
  152. Editor,
  153. },
  154. data() {
  155. return {
  156. title:false,
  157. showtemplate:false,
  158. showcapital:false,
  159. showpayee:false,
  160. showlasj:false,
  161. showbankType:false,
  162. showproject:false,
  163. showFundType:false,
  164. showpayer:false,
  165. buttonType:'a',
  166. minDate: new Date(2000, 1, 1),
  167. maxDate: new Date(2050, 12, 31),
  168. currentDate: new Date(),
  169. form:{},
  170. fileList:[],
  171. capitalExpenditureType:'',
  172. payee:'',
  173. bankType:'',
  174. majorType:'',
  175. wfydlxDictionaries:[],
  176. jglxDictionaries:[],
  177. sysDictionaries:[],
  178. capitalExpenditureTypeOptions:[],
  179. bankTypeDictionaries:[],
  180. projectList:[],
  181. projectFundTypeOptions:[],
  182. projectFundTypeDictionaries:[],
  183. majorTypeOptions:[],
  184. templateList:[],
  185. projectListShow:[],
  186. payerOptions:[],
  187. chargeItme:[],
  188. chargeItmeShow:[],
  189. payeeList:[],
  190. // 查询参数
  191. queryParams: {
  192. transferType:"",
  193. orderByColumn: "id",
  194. isAsc: "desc",
  195. },
  196. capitalExpenditureOpen:false,
  197. projectForm:{
  198. projectId:null,
  199. projectName:null,
  200. projectContractor:null,
  201. projectAmount:null,
  202. projectBillNum:null,
  203. projectFundType:'1',
  204. outId:null,
  205. ynType:'2'
  206. },
  207. projectFundType:'',
  208. uploadFiles:[],
  209. };
  210. },
  211. created() {
  212. this.reset();
  213. this.getDictionaries();
  214. this.getTemplateList();
  215. },
  216. methods: {
  217. // 表单重置
  218. reset() {
  219. this.form = {
  220. id: null,
  221. upId: null,
  222. downId: null,
  223. orderId: null,
  224. cashierId: null,
  225. transferType: '3',
  226. accountType: '2',
  227. explainSituation: null,
  228. succeedAmount: null,
  229. payer: null,
  230. payerAccount: null,
  231. operatorCode: null,
  232. enterpriseCode: null,
  233. expenditureAmount: null,
  234. capitalExpenditureType: '1',
  235. majorType: null,
  236. dzbty: null,
  237. lwhsy: null,
  238. dqyshsyhjy: null,
  239. cydbhjy: null,
  240. jcjggk: null,
  241. ssqkgk: null,
  242. remark: null,
  243. transferStatus: "0",
  244. auditStatus: "0",
  245. paymentState: "1",
  246. bankPriority: "0",
  247. clientPriority: "0",
  248. approvalTemplateId: null
  249. };
  250. this.processList = {}
  251. this.projectForm={
  252. projectId:null,
  253. projectName:null,
  254. projectContractor:null,
  255. projectAmount:null,
  256. projectBillNum:null,
  257. projectFundType:'1',
  258. outId:null,
  259. ynType:'1'
  260. }
  261. },
  262. goFlow(){
  263. if(this.form.approvalMode == '1' && this.form.approvalTemplateId != undefined && this.form.approvalTemplateId != "undefined"){
  264. window.location='approvalProcess3?approvalTemplateId='+this.form.approvalTemplateId+'&approvalMode='+this.form.approvalMode;
  265. }else{
  266. this.$notify({ type: 'danger', message: '无审批流程!' });
  267. }
  268. },
  269. getChange(){
  270. addMajorevent(this.form).then(response => {
  271. this.$toast.success('保存成功');
  272. setTimeout(function(){
  273. history.go(-1)
  274. },2000)
  275. });
  276. },
  277. getDictionaries(){
  278. this.getDicts("major_type").then((res) => {
  279. for (var i = 0; i < res.data.length; i++) {
  280. this.majorTypeOptions.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
  281. }
  282. });
  283. },
  284. getTemplateList(){
  285. let templateQueryParams = {
  286. // 分页
  287. pageNum: 1,
  288. pageSize: 999,
  289. type:'5'
  290. };
  291. listTemplate(templateQueryParams).then(response => {
  292. this.templateList = response.rows;
  293. });
  294. },
  295. onConfirmTemplate(data){
  296. selectApprovalByTemplateId(data.id).then(res => {
  297. this.showtemplate = false;
  298. if(res.approvalDetails.length>0){
  299. this.form.approvalTemplateName = data.name
  300. this.form.approvalTemplateId = data.id
  301. }else{
  302. this.form.approvalTemplateName = null
  303. this.form.approvalTemplateId = null
  304. this.$notify({ type: 'danger', message: '此流程无节点,无法选择!' });
  305. }
  306. })
  307. },
  308. onConfirmCapital(data){
  309. this.majorType = data.text;
  310. this.form.majorType = data.value;
  311. this.showcapital = false;
  312. },
  313. getError(e){
  314. console.log(e)
  315. this.$notify({ type: 'danger', message: e.errors[0].message });
  316. },
  317. onConfirmLasj(data){
  318. this.form.eventTime = this.getNowFormatDate(data).substr(0,10);
  319. this.showlasj = false;
  320. },
  321. beforeRead(file) {
  322. this.uploadFiles.push(file.file);
  323. },
  324. deleteFile(file){
  325. this.uploadFiles.map((response,index) => {
  326. if(file.file == response){
  327. this.uploadFiles.splice(index,1)
  328. }
  329. })
  330. },
  331. getFileList(){
  332. let oData= {
  333. tableId: this.$route.query.id,
  334. tableName: "t_yinnong_majorevent",
  335. bizPath: "yinnong",
  336. fileType: "",
  337. }
  338. attachmentList(oData).then(res => {
  339. console.log(res)
  340. console.log(location.protocol+"//"+location.host+request.defaults.baseURL)
  341. res.rows.map(r => {
  342. let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
  343. this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{})})
  344. console.log(r)
  345. })
  346. })
  347. },
  348. goBack(){
  349. window.history.go(-1)
  350. },
  351. //删除家庭成员
  352. deleteChargeItme(index){
  353. this.chargeItme.splice(index,1)
  354. },
  355. },
  356. }
  357. </script>
  358. <style scoped lang="scss">
  359. .app-container {
  360. padding: 2% 0;
  361. }
  362. .main_title{
  363. font-size: 0.4rem;
  364. color: #1D6FE9;
  365. margin: 0.2rem 6%;
  366. position: relative;
  367. }
  368. .main_box{
  369. width: 96%;
  370. margin: 0 auto;
  371. border-radius: 6px;
  372. box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
  373. overflow: hidden;
  374. background-color: #FFF;
  375. }
  376. .submitButton{
  377. width: 80%;
  378. margin: 0 auto;
  379. background-color: #1D6FE9;
  380. }
  381. .addFamily{
  382. position: absolute;
  383. top: -2px;
  384. right: 0;
  385. border-radius: 50%;
  386. }
  387. .deleteFamily{
  388. position: absolute;
  389. top: 0rem;
  390. right: 6%;
  391. z-index: 9;
  392. border-radius: 50%;
  393. }
  394. </style>