update.vue 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <template>
  2. <view>
  3. <!-- 顶部 -->
  4. <cu-custom bgColor="bg-blue" :isBack="true">
  5. <block slot="backText">编辑施工日志</block>
  6. <block slot="content"></block>
  7. <block slot="right">
  8. <view class=" flex justify-center">
  9. <button @click="save()" class="margin-top-ssm cu-btn line-blue round text-white" style="width: 160rpx;height: 66rpx;padding: 0;">保存</button>
  10. </view>
  11. </block>
  12. </cu-custom>
  13. <!-- 项目合同段信息 -->
  14. <view style="background-color: #fff;padding: 22rpx;margin-bottom: 20rpx;">
  15. <view style="font-size: 30rpx;color: #101010;font-weight: bold;">{{project.project_name}}</view>
  16. <view style="font-size: 28rpx;color: #101010;margin-top: 10rpx;">{{project.contractName}}</view>
  17. </view>
  18. <form>
  19. <view class="cu-form-group_1">
  20. <view class="title">填报日期</view>
  21. <input placeholder-style="color:#AEAEAE" placeholder="请输入" disabled="" v-model="data.date" name="input"></input>
  22. </view>
  23. <view class="cu-form-group_1">
  24. <view class="title">平均气温</view>
  25. <input placeholder-style="color:#AEAEAE" placeholder="请输入" v-model="data.averageTemperature" name="input"></input>
  26. </view>
  27. <view class="cu-form-group_1">
  28. <view class="title">天气</view>
  29. <input placeholder-style="color:#AEAEAE" placeholder="请输入" v-model="data.weather" name="input"></input>
  30. </view>
  31. <view class="cu-form-group_1" @click="modalShow=true">
  32. <view class="title">开工时间</view>
  33. <input disabled="true" placeholder-style="color:#AEAEAE" placeholder="请输入" v-model="data.startTime" name="input"></input>
  34. </view>
  35. <view class="cu-form-group_1">
  36. <view class="title">工程名称</view>
  37. <input placeholder-style="color:#AEAEAE" placeholder="请输入" v-model="data.itemName" name="input"></input>
  38. </view>
  39. <view class="cu-form-group_1">
  40. <view class="title">施工部位</view>
  41. <input placeholder-style="color:#AEAEAE" placeholder="请输入" v-model="data.site" name="input"></input>
  42. </view>
  43. </form>
  44. <form>
  45. <view class="cu-form-group_2" style="margin-top: 20rpx;">
  46. <view class="title">施工组织计划</view>
  47. <view>
  48. <textarea placeholder-style="color:#AEAEAE" maxlength="-1" v-model="data.orgPlan" placeholder="请输入"></textarea>
  49. </view>
  50. </view>
  51. <view class="cu-form-group_2">
  52. <view class="title">安全交底</view>
  53. <view>
  54. <textarea placeholder-style="color:#AEAEAE" maxlength="-1" v-model="data.safetyDegree" placeholder="请输入"></textarea>
  55. </view>
  56. </view>
  57. <view class="cu-form-group_2">
  58. <view class="title">技术交底</view>
  59. <view>
  60. <textarea placeholder-style="color:#AEAEAE" maxlength="-1" v-model="data.technologyDegree" placeholder="请输入"></textarea>
  61. </view>
  62. </view>
  63. <view class="cu-form-group_2">
  64. <view class="title">下达施工任务</view>
  65. <view>
  66. <textarea placeholder-style="color:#AEAEAE" maxlength="-1" v-model="data.releaseTask" placeholder="请输入"></textarea>
  67. </view>
  68. </view>
  69. <view class="cu-form-group_2" style="margin-bottom: 20rpx;">
  70. <view class="title">重要记事</view>
  71. <view>
  72. <textarea placeholder-style="color:#AEAEAE" maxlength="-1" v-model="data.importantNote" placeholder="请输入"></textarea>
  73. </view>
  74. </view>
  75. </form>
  76. <form>
  77. <view class="cu-form-group_1" @click="navTo(2)" style="justify-content: space-between;">
  78. <view class="title">监理员</view>
  79. <input placeholder-style="color:#AEAEAE" placeholder="请选择" v-model="data.supervisionWorker" disabled="" style="width: 520rpx;"></input>
  80. <text class='cuIcon-right'></text>
  81. </view>
  82. <view class="cu-form-group_1" @click="navTo(1)" style="justify-content: space-between;">
  83. <view class="title">施工员</view>
  84. <input placeholder-style="color:#AEAEAE" placeholder="请选择" v-model="data.constructionWorker" disabled="" style="width: 520rpx;"></input>
  85. <text class='cuIcon-right'></text>
  86. </view>
  87. </form>
  88. <!-- 时间弹窗 -->
  89. <view class="cu-modal bottom-modal" :class="modalShow?'show':''" >
  90. <view class="cu-dialog" style="background-color: white;border-radius: 20rpx 20rpx 0 0;">
  91. <view class="cu-bar bg-white">
  92. <view class="action text-gray"></view>
  93. <view class="action text-black text-bold" style="color: #101010;">选择时间</view>
  94. <view class="action text-gray" @tap="showdialog()">取消</view>
  95. </view>
  96. <view style="padding-bottom: 10rpx;">
  97. <calendar @selected-change="datechange" :showBack="false" :dotStyle="dotStyle"></calendar>
  98. </view>
  99. </view>
  100. </view>
  101. </view>
  102. </template>
  103. <script>
  104. export default {
  105. data() {
  106. return {
  107. dotStyle:{color: 'black'},
  108. project:"",
  109. time:"",
  110. constructionList:[],
  111. supervisionList:[],
  112. modalShow:false,
  113. data:{
  114. id:'',
  115. averageTemperature:'',
  116. weather:'',
  117. date:'',
  118. startTime:'',
  119. itemName:'',
  120. site:'',
  121. orgPlan:'',
  122. safetyDegree:'',
  123. technologyDegree:'',
  124. releaseTask:'',
  125. importantNote:'',
  126. supervisionWorker:'',
  127. constructionWorker:''
  128. },
  129. rules:[
  130. {name: 'date', required: true, type: 'required', errmsg: '请填写填报日期'},
  131. {name: 'averageTemperature', required: true, type: 'required', errmsg: '请填写平均气温'},
  132. {name: 'weather', required: true, type: 'required', errmsg: '请填写天气'},
  133. {name: 'startTime', required: true, type: 'required', errmsg: '请填写开工时间'},
  134. {name: 'itemName', required: true, type: 'required', errmsg: '请填写工程名称'},
  135. {name: 'site', required: true, type: 'required', errmsg: '请填写施工部位'},
  136. {name: 'orgPlan', required: true, type: 'required', errmsg: '请填写施工组织计划'},
  137. {name: 'safetyDegree', required: true, type: 'required', errmsg: '请填写安全交底'},
  138. {name: 'technologyDegree', required: true, type: 'required', errmsg: '请填写技术交底'},
  139. {name: 'releaseTask', required: true, type: 'required', errmsg: '请填写下达施工任务'},
  140. {name: 'importantNote', required: true, type: 'required', errmsg: '请填写重记事'},
  141. {name: 'supervisionWorker', required: true, type: 'required', errmsg: '请选择监理员'},
  142. {name: 'constructionWorker', required: true, type: 'required', errmsg: '请填写施工员'},
  143. ],
  144. updateOrInsert:0,//0为新增 , 1为编辑
  145. upId:null,
  146. contractId : uni.getStorageSync("porject"+"_"+uni.getStorageSync("userInfo").id).contractId,
  147. project:uni.getStorageSync("porject"+"_"+uni.getStorageSync("userInfo").id),
  148. }
  149. },
  150. onLoad(e) {
  151. this.data.date=e.time;
  152. this.project= uni.getStorageSync("porject"+"_"+uni.getStorageSync("userInfo").id);
  153. this.updateOrInsert=e.type;
  154. this.upId = e.id;
  155. if(this.updateOrInsert==1){//获取日志信息进行绑定
  156. this.findData(this.upId);
  157. }else{
  158. //获取合同段的地址,根据地址获取温度和天气
  159. var that =this;
  160. var cityName = uni.getStorageSync("porject"+"_"+uni.getStorageSync("userInfo").id).project_place;
  161. that.http.request("/app/diary/getWeather",{
  162. projectId:that.project.id,
  163. contractId:that.contractId,
  164. date:e.time
  165. }).then((res)=>{
  166. that.data.averageTemperature =res.tempSection;
  167. that.data.weather = res.weather
  168. })
  169. }
  170. },
  171. methods: {
  172. showdialog(){
  173. this.modalShow= !this.modalShow;
  174. },
  175. datechange(e) {
  176. this.data.startTime=e.fullDate
  177. this.showdialog();
  178. },
  179. navTo(value){
  180. uni.navigateTo({
  181. url:"/pages/constructionLog/personnel/personnel?type="+value
  182. })
  183. },
  184. //获取该日志的数据,编辑
  185. findData(id){
  186. var that =this;
  187. that.http.request('/app/diary/findDiaryById', {diaryId:id}).then((result)=>{
  188. that.data = result.data;
  189. that.$delete(that.data,'prefix');
  190. })
  191. },
  192. save(){
  193. var that =this;
  194. /* let result= that.$formValidate.validate(this.data,this.rules)//表单验证
  195. if(result.isOk){ */
  196. let param =that.data;
  197. param.contractId= this.project.contractId;
  198. param.creator= uni.getStorageSync("userInfo").id;
  199. param.state= that.data.state==null ? 0 : that.data.state;
  200. param.deleted= that.data.deleted==null ? 0 : that.data.deleted;
  201. param.createTime=new Date();
  202. that.http.request('/app/diary/addOrUpdate', param).then((result)=>{
  203. if(result.result=="1"){
  204. that.$prompt.none(result.msg);
  205. setTimeout(function(){
  206. uni.navigateBack({
  207. delta:1
  208. })
  209. },500)
  210. }else{
  211. that.$prompt.Error("保存失败");
  212. }
  213. })
  214. /* }else{
  215. that.$prompt.none(result.errmsg)
  216. } */
  217. }
  218. },
  219. onShow(){
  220. /* 监听选择施工人员页面的handleFun方法 */
  221. uni.$on("handleFun", res => {
  222. this.data.constructionWorker="";
  223. this.constructionList=res;
  224. res.forEach((item)=>{
  225. this.data.constructionWorker+=item.user_name
  226. })
  227. })
  228. /* 监听选择监理人员页面的handleFun方法 */
  229. uni.$on("handleFunBy", res => {
  230. this.data.supervisionWorker="";
  231. this.supervisionList=res;
  232. res.forEach((item)=>{
  233. this.data.supervisionWorker+=item.user_name
  234. })
  235. })
  236. },
  237. }
  238. </script>
  239. <style>
  240. .solid-top-type{
  241. border-top: 0px solid #eee;
  242. }
  243. .cu-form-group_1{display: flex;align-items: center;padding:0 22rpx;background-color: #fff;border-bottom: 2rpx solid #EAEAEA;height: 88rpx;}
  244. .cu-form-group_1 .title{font-size: 30rpx;color: #101010;width: 154rpx;}
  245. .cu-form-group_1 input{font-size: 30rpx;color: #8a8a8a;}
  246. .cu-form-group_2{padding: 22rpx;background-color: #fff;border-bottom: 2rpx solid #EAEAEA;}
  247. .cu-form-group_2 .title{font-size: 30rpx;color: #101010;padding-bottom: 18rpx;}
  248. .cu-form-group_2 textarea{font-size: 30rpx;color: #8a8a8a;width: 100%;}
  249. .cu-modal.show {
  250. overflow-y: auto;
  251. pointer-events: auto;
  252. }
  253. </style>