diff --git a/src/components/administrative/ViittoContract.vue b/src/components/administrative/ViittoContract.vue new file mode 100644 index 0000000000000000000000000000000000000000..b585309a7b1e049bd984cfdfb972ddee957a35c0 --- /dev/null +++ b/src/components/administrative/ViittoContract.vue @@ -0,0 +1,182 @@ +<style> + +</style> +<template> + <div class="flexOne newContract"> + <div class="ElectronicAudit"> + <div class="query-box"> + <ul> + <li> + <input type="button" class="hollowFixedBtn" value="新增" @click="goToDetail()"/> + </li> + </ul> + </div> + <div class="commonContent" v-loading="loading"> + <table class="singeRowTable" border="0" cellspacing="0" cellpadding="0"> + <tr> + <th>乙方åç§°</th> + <th>ç¾è®¢æ—¥æœŸ</th> + <th>è¥ä¸šæ‰§ç…§</th> + <th>åˆåŒå¼€å§‹æ—¥æœŸ</th> + <th>åˆåŒç»“æŸæ—¥æœŸ</th> + <th>微途ç¾ç« 图片</th> + <th>微途ç¾è®¢æ—¥æœŸ</th> + <th>客户ç¾ç« 图片</th> + <th>客户ç¾è®¢æ—¥æœŸ</th> + <th>创建人</th> + <th>创建日期</th> + <th>æ“作</th> + </tr> + <tr v-for="(item,index) in dataList" :key="index"> + <td>{{item.CustomerName}}</td> + <td> + <template v-if="item.SignDate!=null"> + {{getDate(item.SignDate)}} + </template> + </td> + <td>{{item.BusinessLicense}}</td> + <td> + <template v-if="item.ContractStartDate!=null"> + {{getDate(item.ContractStartDate)}} + </template> + </td> + <td> + <template v-if="item.ContractEndDate!=null"> + {{getDate(item.ContractEndDate)}} + </template> + </td> + <td> + <img :src="item.ViittoSignImg" style="width:100px;"/> + </td> + <td> + <template v-if="item.ViittoSignDate!=null"> + {{getDate(item.ViittoSignDate)}} + </template> + </td> + <td> + <img :src="item.CustomerSignImg" style="width:100px;"/> + </td> + <td> + <template v-if="item.CustomerSignDate!=null"> + {{getDate(item.CustomerSignDate)}} + </template> + </td> + <td> + {{item.CreateByName}} + </td> + <td> + <template v-if="item.CreateDateStr!=null"> + {{getDate(item.CreateDateStr)}} + </template> + </td> + <td> + <el-tooltip class="item" effect="dark" content="修改" placement="top-start"> + <el-button type="primary" icon="iconfont icon-Edit" @click="goContract(item)" circle></el-button> + </el-tooltip> + <el-tooltip class="item" effect="dark" content="åˆ é™¤" placement="top-start"> + <el-button type="danger" icon="iconfont icon-img_delete_small" circle @click="isdelete(item.Id)"> + </el-button> + </el-tooltip> + </td> + </tr> + </table> + <div class="noData" v-show="dataList.length<1"> + <i class="iconfont icon-kong" style="font-size:100px;"></i> + <p>{{$t("active.ld_noData")}}</p> + </div> + <el-pagination background @current-change="handleChange" :current-page.sync="currentPage" + layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"> + </el-pagination> + </div> + </div> + </div> +</template> + +<script> + import moment from 'moment' + export default { + data() { + return { + msg: { + pageIndex:1, + pageSize:15 + }, + loading:false, + dataList: [], + currentPage:1, + total:0 + }; + }, + methods: { + getDate(date) { + return moment(date).format("YYYY-MM-DD"); + }, + getList() { + this.loading = true; + //获å–åˆ—è¡¨æ•°æ® + this.apipost( + "viitto_get_GetContractService", + this.msg, + res => { + this.loading = false; + console.log(res,'ressssss'); + if (res.data.resultCode == 1) { + this.dataList = res.data.data.pageData; + this.total = res.data.data.count; + } else { + this.Error(res.data.message); + } + }, + err => {} + ); + }, + handleChange(val){ + this.msg.pageIndex = val; + this.getList(); + }, + //åˆ é™¤ + isdelete(Id) { + var that = this; + this.Confirm("是å¦åˆ 除?", function () { + var msg = { + Id: Id + }; + that.apipost( + "viitto_post_RemoveViittoContractService", + msg, + res => { + if (res.data.resultCode == 1) { + that.getList(); + } + }, + null + ); + }); + }, + //新增åˆåŒè·³è½¬ + goToDetail() { + this.$router.push({ + name: 'magiContract', + query: { + blank: "y", + } + }); + }, + //跳转至åˆåŒ + goContract(item){ + this.$router.push({ + name: 'magiContract', + query: { + blank: "y", + Id:item.Id + } + }); + + } + }, + mounted() { + this.getList(); + } + }; + +</script> diff --git a/src/components/magiContract.vue b/src/components/magiContract.vue new file mode 100644 index 0000000000000000000000000000000000000000..4478383f249a5b66006c5b3dfaa63a6a77971403 --- /dev/null +++ b/src/components/magiContract.vue @@ -0,0 +1,653 @@ +<style> + .magiContact{ + width:1000px; + height:auto!important; + background-color: #efefef; + margin:0 auto; + color:#555; + } + .magiTitle{ + width:100%; + text-align: center; + font-size:30px; + margin:70px 0 120px 0; + } + .magiSignContent{ + width:580px; + height:300px; + margin:0 auto; + font-size:20px; + } + .magiSignPlace{ + display: flex; + flex-direction: row; + margin-bottom:40px; + } + .magijiafang{ + width:80px; + text-align-last: justify + } + .magibtnLine{ + border-bottom:1px solid #666666 !important; + color:#666666; + margin-top:-9px; + } + .magiSignPlace input{ + border:none!important; + background-color:transparent; + padding:0 2px !important; + font-size:20px; + } + .magiSignPlace .el-input{ + border-radius: 0; + height:34px; + border: none !important; + background-color: transparent !important; + padding: 0 2px !important; + text-align: center!important; + } + .w465{ + width:465px!important; + } + .w133{ + width:133px!important; + } + .magiNYR{ + display: flex; + justify-content: space-between; + } + .magiBtmContent{ + width:800px; + margin:0 auto; + font-size:20px; + } + .jiayisf{ + width:100%; + display: flex; + justify-content: space-between; + } + .w195{ + width:195px!important; + } + .w212{ + width:212px!important; + } + .magiRule{ + margin-top:30px; + text-indent: 40px; + line-height: 40px; + } + .magiComTitle{ + font-size:25px; + margin:30px 0; + } + .magiComSecond{ + font-size:22px; + margin:20px 0; + } + .magiDingyi{ + margin-left:20px; + line-height: 40px; + } + .magiDingyi>div{ + margin-bottom:20px; + } + .magiDingyi input { + border: none!important; + background-color: transparent; + padding: 0 2px !important; + } + .magiLastNYR{ + display: flex; + flex-direction: row; + } + .w60{ + width:60px!important; + } + .magiLastNYR input{ + border: none!important; + background-color: transparent; + padding: 0 2px !important; + text-align: center; + font-size:20px; + } + .saveMagiBtn{ + color: #fff; + padding: 0 20px; + height: 30px; + background: #E95252; + border: 1px solid #E95252; + cursor: pointer; + border-radius: 15px; + margin-left: 10px; + } + .saveMagDiv{ + margin:30px 0; + text-align: center; + } + .magiContact .zindex{ + z-index: 9999!important; + opacity: 1!important; + } + + .magiContact .signature{ + width:600px; + background: #fff; + padding:15px; + border-radius: 20px; + cursor: pointer; + } + .magiContact .Sign{ + position: fixed; + width:100%; + height:100%; + top:0; + left:0; + background: rgba(0,0,0,.4); + z-index: -500; + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + } + .magiContact .Sign .signatureBox { + width: 100%; + height: 300px; + box-sizing: border-box; + overflow: hidden; + background: #fff; + z-index: 100; + display: flex; + flex-direction: column; + margin-top:20px; + padding:0 20px; + box-sizing: border-box; + } + .magiContact .Sign .canvasBox { + box-sizing: border-box; + flex: 1; + } + .magiContact .Sign canvas { + border: 1px solid #7d7d7d; + } + .magiContact .Sign .btnBox { + padding: 10px; + text-align: center; + } + .magiContact .Sign .btnBox button:first-of-type { + background: transparent; + border-radius: 4px; + height: 40px; + width: 80px; + font-size: 14px; + } + .magiContact .Sign .btnBox button:last-of-type { + background: #71b900; + color: #fff; + border-radius: 4px; + height: 40px; + width: 80px; + font-size: 14px; + } + .MagiSign{ + width:100px; + } +</style> +<template> + <div class="magiContact"> + <div class="magiTitle">麦åERP使用å议书</div> + <div class="magiSignContent"> + <div class="magiSignPlace"> + <div class="magijiafang">甲方</div>: + <div class="magibtnLine"> + <el-input type="text" class="w465" value="æˆéƒ½å¾®é€”科技有é™å…¬å¸"></el-input> + </div> + </div> + <div class="magiSignPlace"> + <div class="magijiafang">乙方</div>: + <div class="magibtnLine"> + <el-input type="text" class="w465" v-model="msg.CustomerName"></el-input> + </div> + </div> + <div class="magiSignPlace"> + <div class="magijiafang">ç¾è®¢æ—¥æœŸ</div>: + <div class="magiNYR"> + <div class="magibtnLine"> + <el-input type="text" class="w133" v-model="SignYear"></el-input> + </div> + å¹´ + <div class="magibtnLine"> + <el-input type="text" class="w133" v-model="SignMonth"></el-input> + </div> + 月 + <div class="magibtnLine"> + <el-input type="text" class="w133" v-model="SignDate"></el-input> + </div> + æ—¥ + </div> + </div> + </div> + <div class="magiBtmContent"> + <div class="jiayisf"> + <div> + 甲方:æˆéƒ½å¾®é€”科技有é™å…¬å¸ + </div> + <div> + è¥ä¸šæ‰§ç…§ï¼š915101060776915321 + </div> + </div> + <div class="jiayisf" style="margin-top:30px;"> + <div class="magiSignPlace"> + <div>乙方:</div> + <div class="magibtnLine"> + <el-input type="text" class="w195" v-model="msg.CustomerName"></el-input> + </div> + </div> + <div class="magiSignPlace"> + <div>è¥ä¸šæ‰§ç…§ï¼š</div> + <div class="magibtnLine"> + <el-input type="text" class="w212" v-model="msg.BusinessLicense"></el-input> + </div> + </div> + </div> + <div class="magiRule"> + æ ¹æ®ã€Šä¸åŽäººæ°‘共和国åˆåŒæ³•》以åŠå…¶å®ƒç›¸å…³æ³•å¾‹ã€æ³•规的规定,本ç€å¹³ç‰äº’利的原则, 甲ã€ä¹™åŒæ–¹å°±åˆä½œå¼€å±•_麦åERP系统_软件的å…费应用,特订立本åˆåŒï¼Œå¹¶å…±åŒéµå®ˆä¸‹åˆ—æ¡æ¬¾ï¼š + </div> + <div class="magiComTitle">一ã€å®šä¹‰</div> + <div class="magiDingyi"> + <div>é™¤éžæœ¬åˆåŒçš„æ¡æ¬¾æˆ–è€…å†…å®¹ä¸å¦æœ‰è§„定,下列åè¯å…·æœ‰å¦‚下æ„义:</div> + <div>1ã€è½¯ä»¶äº§å“:指甲方æä¾›çš„《麦åERP系统》的SaaS版本</div> + <div>2ã€çŸ¥è¯†äº§æƒï¼šæŒ‡ä¾æ®ä¸å›½æœ‰å…³æ³•律和国际æ¡çº¦è§„定æƒåˆ©äººæ‰€äº«æœ‰çš„专利æƒã€ç‰ˆæƒ(著作æƒ)ã€å•†æ ‡æƒã€å•†ä¸šä¿¡èª‰å’Œå•†ä¸šç§˜å¯†æƒã€‚</div> + <div>3ã€æŠ€æœ¯æ”¯æŒï¼šåº”è½¯ä»¶ç”¨æˆ·çš„è¦æ±‚,为用户解决软件应用过程ä¸äº§ç”Ÿçš„å„ç§æŠ€æœ¯é—®é¢˜ã€‚</div> + <div>4ã€å”®åŽæœåŠ¡ï¼šæŒ‡ä¸ºä¹™æ–¹åŠä¹™æ–¹ç”¨æˆ·æä¾›è½¯ä»¶ç»´æŠ¤ã€å‡çº§ç‰å…¶å®ƒæœåŠ¡ã€‚</div> + <div>5ã€è¡¥å……åè®®åŠé™„件:指主åˆåŒçš„è¡¥æ•‘æ¡æ¬¾æˆ–从åˆåŒç‰ï¼Œä¸Žä¸»åˆåŒå…·æœ‰åŒæ ·çš„æ•ˆåŠ›ã€‚</div> + </div> + <div class="magiComTitle" style="margin-top:50px;">二ã€åˆåŒæœŸé™</div> + <div class="magiDingyi"> + <div>本åˆåŒè§„定“麦åERP系统â€è½¯ä»¶åŸºç¡€ç‰ˆå…费使用期é™ä¸ºï¼š</div> + <div class="magiLastNYR"> + <div class="magibtnLine" style="margin-top:0;"> + <el-input type="text" class="w60" v-model="SYear"></el-input> + </div> + å¹´ + <div class="magibtnLine" style="margin-top:0;"> + <el-input type="text" class="w60" v-model="SMonth"></el-input> + </div> + 月 + <div class="magibtnLine" style="margin-top:0;"> + <el-input type="text" class="w60" v-model="SDate"></el-input> + </div> + æ—¥ + <div style="margin-left:20px;">至</div> + <div class="magibtnLine" style="margin-top:0;"> + <el-input type="text" class="w60" v-model="EYear"></el-input> + </div> + å¹´ + <div class="magibtnLine" style="margin-top:0;"> + <el-input type="text" class="w60" v-model="EMonth"></el-input> + </div> + 月 + <div class="magibtnLine" style="margin-top:0;"> + <el-input type="text" class="w60" v-model="EDate"></el-input> + </div> + æ—¥ + </div> + </div> + <div class="magiComTitle">三ã€è´¹ç”¨åŠç»“算模å¼</div> + <div class="magiRule"> + ç»ç”²ä¹™åŒæ–¹å商一致,乙方使用软件产å“的基础功能为å…费使用,若乙方需è¦ä½¿ç”¨å…¶ä»–增值功能,需è¦å’Œç”²æ–¹å¦è¡Œç¾è®¢å议。 + </div> + <div class="magiComTitle" style="margin-bottom:0;">å››ã€åŒæ–¹çš„æƒåˆ©å’Œè´£ä»»</div> + <div class="magiComSecond" style="margin-top:0;">(一)甲方的æƒåˆ©å’Œè´£ä»»</div> + <div class="magiDingyi"> + <div>1ã€ç”²æ–¹å‘乙方æä¾›è½¯ä»¶äº§å“å’Œè¿è¡ŒçŽ¯å¢ƒã€‚</div> + <div>2ã€ç”²æ–¹ä¿éšœç³»ç»Ÿçš„稳定è¿è¡Œå’ŒBUGçš„åŠæ—¶ä¿®å¤ã€‚</div> + <div>3ã€ç”²æ–¹å¯ä»¥å‘乙方æä¾›å•ç‹¬ä»˜è´¹çš„å®šåˆ¶åŒ–å¼€å‘æˆ–æœåŠ¡å†…å®¹ã€‚</div> + <div>4ã€ç”²æ–¹æœ‰æƒè¦æ±‚乙方ä¿è¯ç³»ç»Ÿçš„知识产æƒã€‚乙方ä¸å¾—将系统转借éžä¹™æ–¹ä¼ä¸šæˆå‘˜ä½¿ç”¨</div> + <div>5ã€ç”²æ–¹å¯ä»¥ä¸ºä¹™æ–¹æä¾›å…¨æ–¹ä½æŠ€æœ¯æ”¯æŒã€‚ç”±æ¤äº§ç”Ÿçš„甲方工作人员的交通ä½å®¿è´¹ç”¨ç”±ä¹™æ–¹æ‰¿æ‹…。</div> + <div>6〠甲方需ä¿éšœä¹™æ–¹çš„æ•°æ®å®‰å…¨ï¼Œä¸å¯æ³„露任何乙方数æ®ä¸ºç»™éžä¹™æ–¹å·¥ä½œäººå‘˜ã€‚</div> + </div> + <div class="magiComSecond">(二)乙方的æƒåˆ©å’Œè´£ä»»</div> + <div class="magiDingyi"> + <div>1ã€ä¹™æ–¹ä½¿ç”¨æœ¬ç³»ç»Ÿï¼Œå¿…é¡»éµå®ˆå›½å®¶äº’è”网信æ¯ç®¡ç†ç›¸å…³æ³•å¾‹ã€æ³•è§„ã€æ¡ä¾‹ã€‚乙方对其ç»è¥è¡Œä¸ºå’Œä¿¡æ¯å‘å¸ƒæ—¶å› è¿å上述规定而引起的任何政治ã€ç»æµŽã€æ³•律责任承担全部责任。</div> + <div>2ã€ä¹™æ–¹é¡»å¯¹ç³»ç»Ÿä½¿ç”¨è´¦å·ä¸¥æ ¼ä¿å˜ï¼Œç¦æ¢éžä¹™æ–¹å…¬å¸å‘˜å·¥æ‹¥æœ‰è¯¥ç³»ç»Ÿè´¦æˆ·ï¼Œå‘˜å·¥ç¦»èŒåŽï¼ŒåŠæ—¶ç¦ç”¨å…¶è´¦æˆ·ï¼Œå¦‚å› ä¹™æ–¹æ³„éœ²è´¦å·å¯†ç ï¼Œé€ æˆçš„æ•°æ®å®‰å…¨é—®é¢˜ï¼Œç”²æ–¹æ¦‚ä¸è´Ÿè´£ã€‚</div> + <div>3ã€ä¹™æ–¹å¯ä»¥åœ¨å‘¨ä¸€è‡³å‘¨äº”(9:30-18:00)è”系甲方技术支æŒä»£è¡¨è§£å†³ç³»ç»Ÿé—®é¢˜ã€‚若乙方å‡çº§è‡³å®šåˆ¶åŒ–用户å¯ä»¥è°ƒæ•´ä¸ºå‘¨ä¸€è‡³å‘¨æ—¥ï¼ˆ9:30-21:30)</div> + </div> + <div class="magiComTitle">五ã€åˆåŒçš„解除与终æ¢</div> + <div class="magiRule"> + åŒæ–¹å商一致å¯ä»¥è§£é™¤æœ¬åˆåŒã€‚å¦å¤–,本åˆåŒåœ¨ä¸‹åˆ—情形下也å¯ä»¥è§£é™¤ï¼Œä½†æå‡ºè§£é™¤çš„一方应æå‰ä¸€ä¸ªæœˆä»¥ä¹¦é¢å½¢å¼é€šçŸ¥å¯¹æ–¹ï¼š + </div> + <div style="line-height:40px;"> + <div> + 1ã€å› åˆåŒä¸€æ–¹ç»è¥çŠ¶å†µå‡ºçŽ°é‡å¤§å›°éš¾ï¼Œæ¿’ä¸´ç ´äº§è¿›å…¥æ³•å®šæ•´é¡¿æœŸé—´æˆ–è¢«æ¸…ç®—ï¼Œå¦ä¸€æ–¹å¯ä»¥è§£é™¤æœ¬å议。 + </div> + <div> + 2ã€å› åˆåŒä¸€æ–¹æœªå±¥è¡ŒåˆåŒä¹‰åŠ¡æˆ–è¿çº¦ï¼Œå¦ä¸€æ–¹ç»ä¹¦é¢å‘ŠçŸ¥ç»™äºˆä¸€å®šæœŸé™ä»ä¸å±¥è¡Œæˆ–ä¸äºˆé‡‡å–补救措施,致使å¦ä¸€æ–¹åˆåŒé¢„æœŸåˆ©ç›Šæ— æ³•å®žçŽ°æˆ–æ— ç»§ç»å±¥è¡Œå¿…è¦ï¼Œå¦ä¸€æ–¹æœ‰æƒè§£é™¤æœ¬åˆåŒã€‚ + </div> + <div> + 3ã€æœ¬åˆåŒæœŸé™å±Šæ»¡ï¼ŒåŒæ–¹æœªç»ç¾çš„,åˆåŒè§£é™¤æˆ–åˆåŒåˆ°æœŸè‡ªç„¶ç»ˆæ¢ï¼ŒåŒæ–¹ä»åº”履行未完毕之åˆåŒä¹‰åŠ¡ï¼Œå®‰æŽ’å”®å‡ºäº§å“çš„å”®åŽæœåŠ¡äº‹é¡¹ã€‚åŒç‰æ¡ä»¶ä¸‹ï¼Œä¹™æ–¹æœ‰ä¼˜å…ˆç»çº¦æƒåˆ©ã€‚ + </div> + </div> + <div class="magiComTitle">å…ã€è¿çº¦è´£ä»»</div> + <div class="magiDingyi"> + <div>1ã€ä¹™æ–¹è‹¥è¿åå议约定,侵犯甲方知识产æƒï¼Œéœ€æ‰¿æ‹…ä¸ä½ŽäºŽè´°æ‹¾ä¸‡å…ƒæ•´çš„ç»æµŽæŸå¤±ã€‚</div> + <div>2ã€è‹¥ä¸€æ–¹è¿çº¦ç»™å¦ä¸€æ–¹é€ æˆæŸå¤±çš„ï¼Œé™¤èµ”å¿æŸå¤±å¤–,å¦éœ€æ‰¿æ‹…其它è¿çº¦è´£ä»»ã€‚</div> + <div>3ã€å› 一方履约ä¸å½“ç»™ç¬¬ä¸‰æ–¹é€ æˆæŸå¤±çš„,应自行承担赔å¿è´£ä»»ã€‚</div> + </div> + <div class="magiComTitle">七ã€äº‰è®®è§£å†³</div> + <div class="magiDingyi"> + <div>甲ã€ä¹™åŒæ–¹ä¹‹é—´å› 履行本åˆåŒæˆ–å› æœ¬åˆåŒä»»ä½•æ¡æ¬¾çš„解释与适用而å‘生任何争议,甲ã€ä¹™åŒæ–¹åº”通过å‹å¥½å商解决。如å商ä¸èƒ½è§£å†³ï¼Œä»»ä½•一方有æƒå‘有管辖æƒçš„人民法院起诉。</div> + </div> + <div class="magiComTitle">å…«ã€å…¶å®ƒ</div> + <div class="magiDingyi"> + <div>1ã€å‡¡æ¶‰åŠæœ¬ä»£ç†åˆåŒè¡¥å……ã€å˜æ›´ã€è§£é™¤ç‰äº‹å®œï¼ŒåŒæ–¹å‡å¯è¿›è¡Œå商并ç¾ç½²è¡¥å……å议作为åˆåŒé™„件。åˆåŒé™„件与本åˆåŒå…·æœ‰åŒç‰æ³•律效力。</div> + <div>2ã€æœ¬åˆåŒä¸€å¼è´°ä»½ï¼ŒåŒæ–¹å„执壹份,ç¾å—ç›–ç« åŽç”Ÿæ•ˆï¼Œå…·æœ‰åŒç‰æ³•律效力。</div> + </div> + <div style="margin:60px 0;">本公å¸å°šæœ‰"选é…功能"."增值功能"."é™„åŠ æœåŠ¡"三项优质产å“,欢迎选è´</div> + <div class="jiayisf"> + <div> + 甲方授æƒä»£è¡¨(ç¾ç« ): + </div> + <div style="display:flex"> + 乙方授æƒä»£è¡¨(ç¾ç« ):<img class="MagiSign" :src="msg.CustomerSignImg" v-if="msg.CustomerSignImg!=''"/> + <a style="text-decoration:none;" v-else href="javascript:void(0);" @click="SetPic()">ç¾å</a> + </div> + </div> + <div class="jiayisf" style="margin:30px 0"> + <div class="magiLastNYR"> + <div class="magibtnLine"> + <el-input type="text" class="w60" v-model="JYear"></el-input> + </div> + å¹´ + <div class="magibtnLine"> + <el-input type="text" class="w60" v-model="JMonth"></el-input> + </div> + 月 + <div class="magibtnLine"> + <el-input type="text" class="w60" v-model="JDate"></el-input> + </div> + æ—¥ + </div> + <div class="magiLastNYR"> + <div class="magibtnLine"> + <el-input type="text" class="w60" v-model="YYear"></el-input> + </div> + å¹´ + <div class="magibtnLine"> + <el-input type="text" class="w60" v-model="YMonth"></el-input> + </div> + 月 + <div class="magibtnLine"> + <el-input type="text" class="w60" v-model="YDate"></el-input> + </div> + æ—¥ + </div> + </div> + <div class="saveMagDiv"> + <input type="button" class="saveMagiBtn" value="ä¿å˜" @click="SaveInfo()"/> + </div> + </div> + + <!-- ç¾å --> + <div class="Sign" :class="signState?'zindex':''"> + <div class="signature"> + <p class="f14" style="padding:10px 10px 10px 0">ç¾å + <span @click="CloseSign" style="float:right" class="el-icon-close"></span> + </p> + <div class="signatureBox"> + <div class="canvasBox" ref="canvasHW"> + <canvas ref="canvasF" @mousedown="mouseDown" @mousemove="mouseMove" @mouseup="mouseUp"></canvas> + <div class="button" style="text-align:center;margin-top:20px"> + <el-button size="small" @click="overwrite">é‡å†™</el-button> + <el-button size="small" type="danger" @click="commit">æäº¤</el-button> + </div> + </div> + </div> + </div> + </div> + + </div> +</template> +<script> +import moment from 'moment' +export default { + data() { + return { + msg:{ + Id:0, + CustomerName:'', //乙方åç§° + SignDate:'', //ç¾è®¢æ—¥æœŸ + BusinessLicense:'', //è¥ä¸šæ‰§ç…§ + ContractStartDate:'', // åˆåŒå¼€å§‹æ—¥æœŸ + ContractEndDate:'', //åˆåŒç»“æŸæ—¥æœŸ + ViittoSignImg:'', //微途ç¾ç« 图片 + ViittoSignDate:'', //微途ç¾è®¢æ—¥æœŸ + CustomerSignImg:'', //客户ç¾ç« 图片 + CustomerSignDate:'', //客户ç¾è®¢æ—¥æœŸ + }, + SignYear:'', //ç¾çº¦æ—¥æœŸå¹´ + SignMonth:'', //ç¾çº¦æ—¥æœŸæœˆ + SignDate:'', //ç¾çº¦æ—¥æœŸæ—¥ + + SYear:'', //使用开始年 + SMonth:'', //使用开始月 + SDate:'', //使用开始日 + + EYear:'', //使用结æŸå¹´ + EMonth:'', //ä½¿ç”¨ç»“æŸæœˆ + EDate:'', //ä½¿ç”¨ç»“æŸæ—¥ + + JYear:'', //甲方ç¾çº¦å¹´ + JMonth:'', //甲方ç¾çº¦æœˆ + JDate:'', //甲方ç¾çº¦æ—¥ + + YYear:'', //乙方ç¾çº¦å¹´ + YMonth:'',//乙方ç¾çº¦æœˆ + YDate:'', //乙方ç¾çº¦æ—¥ + + signState:false, + startX: 0, + startY: 0, + moveY: 0, + moveX: 0, + endY: 0, + endX: 0, + w: null, + h: null, + isDown: false, + + } + }, + mounted() { + let canvas = this.$refs.canvasF + canvas.height = this.$refs.canvasHW.offsetHeight - 100 + canvas.width = this.$refs.canvasHW.offsetWidth - 10 + this.canvasTxt = canvas.getContext('2d') + this.stageInfo = canvas.getBoundingClientRect() + + if (this.$route.query.Id) { + this.msg.Id = this.$route.query.Id; + this.getContract(); + } + + }, + methods: { + //åˆå§‹åŒ–ä¿¡æ¯ + getContract(){ + let msg = { + Id:this.$route.query.Id + } + this.apipost("viitto_get_GetEntityService",msg,res => { + console.log(res,'æ¥äº†'); + if (res.data.resultCode == 1) { + //this.Success('ä¿å˜æˆåŠŸ'); + let myData = res.data.data; + this.msg.CustomerName = myData.CustomerName; + if(myData.SignDate!=null){ + this.SignYear = moment(myData.SignDate).format("YYYY-MM-DD").split("-")[0]; + this.SignMonth = moment(myData.SignDate).format("YYYY-MM-DD").split("-")[1]; + this.SignDate = moment(myData.SignDate).format("YYYY-MM-DD").split("-")[2]; + } + this.msg.BusinessLicense = myData.BusinessLicense; + if(myData.ContractStartDate!=null){ + this.SYear = moment(myData.ContractStartDate).format("YYYY-MM-DD").split("-")[0]; + this.SMonth = moment(myData.ContractStartDate).format("YYYY-MM-DD").split("-")[1]; + this.SDate = moment(myData.ContractStartDate).format("YYYY-MM-DD").split("-")[2]; + } + if(myData.ContractEndDate!=null){ + this.EYear = moment(myData.ContractEndDate).format("YYYY-MM-DD").split("-")[0]; + this.EMonth = moment(myData.ContractEndDate).format("YYYY-MM-DD").split("-")[1]; + this.EDate = moment(myData.ContractEndDate).format("YYYY-MM-DD").split("-")[2]; + } + if(myData.ViittoSignDate!=null){ + this.JYear = moment(myData.ViittoSignDate).format("YYYY-MM-DD").split("-")[0]; + this.JMonth = moment(myData.ViittoSignDate).format("YYYY-MM-DD").split("-")[1]; + this.JDate = moment(myData.ViittoSignDate).format("YYYY-MM-DD").split("-")[2]; + } + if(myData.CustomerSignDate!=null){ + this.YYear = moment(myData.CustomerSignDate).format("YYYY-MM-DD").split("-")[0]; + this.YMonth = moment(myData.CustomerSignDate).format("YYYY-MM-DD").split("-")[1]; + this.YDate = moment(myData.CustomerSignDate).format("YYYY-MM-DD").split("-")[2]; + } + this.msg.ViittoSignImg = myData.ViittoSignImg; + this.msg.CustomerSignImg = myData.CustomerSignImg; + } else { + this.Error(res.data.message); + } + }, + err => {} + ); + }, + //ä¿å˜ + SaveInfo(){ + this.msg.SignDate = this.SignYear+"-"+this.SignMonth+"-"+this.SignDate; + this.msg.ContractStartDate = this.SYear+"-"+this.SMonth+"-"+this.SDate; + this.msg.ContractEndDate = this.EYear+"-"+this.EMonth+"-"+this.EDate; + this.msg.ViittoSignDate = this.JYear+"-"+this.JMonth+"-"+this.JDate; + this.msg.CustomerSignDate = this.YYear+"-"+this.YMonth+"-"+this.YDate; + this.apipost("viitto_post_SetViittoContractService",this.msg,res => { + if (res.data.resultCode == 1) { + this.Success('ä¿å˜æˆåŠŸ'); + } else { + this.Error(res.data.message); + } + }, + err => {} + ); + }, + SetPic(){ + this.overwrite(); + this.signState=true + }, + CloseSign(){ + this.signState=false; + }, + // ç¾å + //é‡å†™ + overwrite() { + this.canvasTxt.clearRect(0, 0, this.$refs.canvasF.width, this.$refs.canvasF.height) + this.points = [] + }, + //æäº¤ç¾å + commit() { + let that=this; + let imgUrl =this.$refs.canvasF.toDataURL(); + let newArr = []; + var fileName = `${that.uuid(10,10)}.png`; + var path = `/RevenueFile/`; + newArr.push(this.dataURLtoFile(imgUrl,fileName)) + this.UploadSelfFileT(path, newArr, x => { + this.msg.CustomerSignImg=that.domainManager().ViittoFileUrl+x.data.FilePath; + }, 1); + this.signState=false; + }, + + mouseDown(ev) { + ev = ev || event + ev.preventDefault() + if (1) { + let obj = { + x: ev.offsetX, + y: ev.offsetY + } + this.startX = obj.x + this.startY = obj.y + this.canvasTxt.beginPath() + this.canvasTxt.moveTo(this.startX, this.startY) + this.canvasTxt.lineTo(obj.x, obj.y) + this.canvasTxt.stroke() + this.canvasTxt.closePath() + this.points.push(obj) + this.isDown = true + } + }, + mouseMove(ev) { + ev = ev || event + ev.preventDefault() + if (this.isDown) { + let obj = { + x: ev.offsetX, + y: ev.offsetY + } + this.moveY = obj.y + this.moveX = obj.x + this.canvasTxt.beginPath() + this.canvasTxt.moveTo(this.startX, this.startY) + this.canvasTxt.lineTo(obj.x, obj.y) + this.canvasTxt.stroke() + this.canvasTxt.closePath() + this.startY = obj.y + this.startX = obj.x + this.points.push(obj) + } + }, + mouseUp(ev) { + ev = ev || event + ev.preventDefault() + if (1) { + let obj = { + x: ev.offsetX, + y: ev.offsetY + } + this.canvasTxt.beginPath() + this.canvasTxt.moveTo(this.startX, this.startY) + this.canvasTxt.lineTo(obj.x, obj.y) + this.canvasTxt.stroke() + this.canvasTxt.closePath() + this.points.push(obj) + this.points.push({x: -1, y: -1}) + this.isDown = false + } + }, + uuid(len, radix) { + var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); + var uuid = [], + i; + radix = radix || chars.length; + if (len) { + // Compact form + for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]; + } else { + var r; + uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; + uuid[14] = '4'; + for (i = 0; i < 36; i++) { + if (!uuid[i]) { + r = 0 | Math.random() * 16; + uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; + } + } + } + return uuid.join(''); + }, + dataURLtoFile(dataurl, filename) {//å°†base64转æ¢ä¸ºæ–‡ä»¶ + var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], + bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); + while(n--){ + u8arr[n] = bstr.charCodeAt(n); + } + return new File([u8arr], filename, {type:mime}); + }, + }, +} +</script> \ No newline at end of file diff --git a/src/router/config.js b/src/router/config.js index 8da0d0ac07977eb9eac08d7b84c136b2ee1dce42..47c96eedc0c52b86bb7d14c09126e9cd60919d4c 100644 --- a/src/router/config.js +++ b/src/router/config.js @@ -368,6 +368,14 @@ export default { title: '电ååˆåŒå®¡æ ¸' }, }, + { + path: '/ViittoContract', // 行政-微途电ååˆåŒ + name: 'ViittoContract', + component: resolve => require(['@/components/administrative/ViittoContract'], resolve), + meta: { + title: '微途电ååˆåŒ' + } + }, { path: '/ContractManage', //åˆåŒç®¡ç† name: 'ContractManage', @@ -4611,6 +4619,14 @@ export default { title: '电ååˆåŒ' } }, + { + path: '/magiContract', //麦åErp使用åˆåŒ + name: 'magiContract', + component: resolve => require(['@/components/magiContract'], resolve), + meta: { + title: '麦åErp使用åˆåŒ' + } + }, { path: '/ScenicStrategyview', //景点攻略预览 name: 'ScenicStrategyview',