|
@@ -0,0 +1,334 @@
|
|
|
+ <div class="weixinnuo">
|
|
|
+ <div class="reportTitle center"><strong>专利新思路委外检索报告</strong></div>
|
|
|
+ <div class="content">
|
|
|
+ <div>
|
|
|
+ <div class="content_title">基本信息</div>
|
|
|
+ <div>
|
|
|
+ <table>
|
|
|
+ <tr>
|
|
|
+ <td class="width_150">思路名称</td>
|
|
|
+ <td colspan="3" @click="edit('baseMessage','caseName')">
|
|
|
+ <div v-if="isEdit('baseMessage','caseName')">
|
|
|
+ <myRichText v-model="reportData.baseMessage.caseName" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','caseName',dataObj.baseMessage.caseName)"></div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>提案编号(维信诺)</td>
|
|
|
+ <td class="width_300" @click="edit('baseMessage','customCaseNumber')">
|
|
|
+ <div v-if="isEdit('baseMessage','customCaseNumber')">
|
|
|
+ <myRichText v-model="reportData.baseMessage.customCaseNumber" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','customCaseNumber',dataObj.baseMessage.customCaseNumber)"></div>
|
|
|
+ </td>
|
|
|
+ <td class="width_98">检索日期</td>
|
|
|
+ <td @click="edit('baseMessage','searchTime')">
|
|
|
+ <div v-if="isEdit('baseMessage','searchTime')">
|
|
|
+ <myRichText v-model="reportData.baseMessage.searchTime" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','searchTime',dataObj.baseMessage.searchTime || getSearchTime())"></div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>发明人</td>
|
|
|
+ <td @click="edit('baseMessage','inventor')">
|
|
|
+ <div v-if="isEdit('baseMessage','inventor')">
|
|
|
+ <myRichText v-model="reportData.baseMessage.inventor" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','inventor',dataObj.baseMessage.inventor)"></div>
|
|
|
+ </td>
|
|
|
+ <td>IPR</td>
|
|
|
+ <td @click="edit('baseMessage','ipr')">
|
|
|
+ <div v-if="isEdit('baseMessage','ipr')">
|
|
|
+ <myRichText editModel="clean" v-model="reportData.baseMessage.ipr" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','ipr',dataObj.baseMessage.ipr)"></div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>检索人</td>
|
|
|
+ <td @click="edit('baseMessage','searchName')">
|
|
|
+ <div v-if="isEdit('baseMessage','searchName')">
|
|
|
+ <myRichText editModel="clean" v-model="reportData.baseMessage.searchName" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','searchName',dataObj.baseMessage.headName || dataObj.baseMessage.createName)"></div>
|
|
|
+ </td>
|
|
|
+ <td>代理机构</td>
|
|
|
+ <td @click="edit('baseMessage','searchUnit')">
|
|
|
+ <div v-if="isEdit('baseMessage','searchUnit')">
|
|
|
+ <myRichText editModel="clean" v-model="reportData.baseMessage.searchUnit" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','searchUnit',dataObj.baseMessage.searchUnit || '广东君龙律师事务所')"></div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>是否具备专利性</td>
|
|
|
+ <td colspan="3">
|
|
|
+ <el-radio-group :value="getColumnData('baseMessage','ifPatentability',dataObj.baseMessage.ifPatentability)" @input="(value)=>{this.$set(this.reportData.baseMessage,'ifPatentability',value)}">
|
|
|
+ <el-radio label="是">是</el-radio>
|
|
|
+ <el-radio label="否">否</el-radio>
|
|
|
+ <el-radio label="公开不充分">公开不充分(与发明人沟通后仍无法达到公开充分标准而驳回)</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>建议申请类型</td>
|
|
|
+ <td colspan="3">
|
|
|
+ <el-radio-group :value="getColumnData('baseMessage','applicationAdvice',(this.dataObj.baseMessage.applicationAdvice == '建议补充资料,然后再进行评估' || this.dataObj.baseMessage.applicationAdvice == '建议结案处理')?'建议结案处理,或者补充资料后再评估':this.dataObj.baseMessage.applicationAdvice)" @input="(value)=>{this.$set(this.reportData.baseMessage,'applicationAdvice',value)}">
|
|
|
+ <el-radio label="建议申请发明专利">发明</el-radio>
|
|
|
+ <el-radio label="建议申请实用新型专利">实用新型</el-radio>
|
|
|
+ <el-radio label="建议申请外观设计专利">外观设计</el-radio>
|
|
|
+ <el-radio label="建议结案处理,或者补充资料后再评估">其他:建议结案处理,或者补充资料后再评估</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="content_title">检索记录表</div>
|
|
|
+ <div>
|
|
|
+ <table>
|
|
|
+ <tr>
|
|
|
+ <td class="width_50">地区</td>
|
|
|
+ <td class="width_98 center">
|
|
|
+ <p>数据库</p>
|
|
|
+ <p>(检索系统)</p>
|
|
|
+ </td>
|
|
|
+ <td class="center">关键词</td>
|
|
|
+ <td class="center width_50">数量</td>
|
|
|
+ </tr>
|
|
|
+ <tr style="position: relative;" v-for="(item,index) in getColumnData('searchRecord',null,(dataObj.searchRecord && dataObj.searchRecord.length>0)?dataObj.searchRecord.map(item2=>{ let dB = {CN:'中国数据库','WD':'全球数据库'}; return {conditions:item2.conditions,totalNum:item2.totalNum,area:dB[item2.dbType]?dB[item2.dbType]:'',dbType:dB[item2.dbType]?'小世系统':item2.dbType}}): [{}])" :key="index">
|
|
|
+ <td @click="edit('searchRecord','area',index)">
|
|
|
+ <div v-if="isEdit('searchRecord','area',index)">
|
|
|
+ <myRichText editModel="clean" v-model="item.area" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="item.area"></div>
|
|
|
+ </td>
|
|
|
+ <td @click="edit('searchRecord','dbType',index)">
|
|
|
+ <div v-if="isEdit('searchRecord','dbType',index)">
|
|
|
+ <myRichText editModel="clean" v-model="item.dbType" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="item.dbType"></div>
|
|
|
+ </td>
|
|
|
+ <td @click="edit('searchRecord','conditions',index)">
|
|
|
+ <div v-if="isEdit('searchRecord','conditions',index)">
|
|
|
+ <myRichText editModel="clean" v-model="item.conditions" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="item.conditions"></div>
|
|
|
+ </td>
|
|
|
+ <td @click="edit('searchRecord','totalNum',index)">
|
|
|
+ <div v-if="isEdit('searchRecord','totalNum',index)">
|
|
|
+ <myRichText editModel="clean" v-model="item.totalNum" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="item.totalNum"></div>
|
|
|
+ </td>
|
|
|
+ <td style="width:0;padding:0;vertical-align: initial;">
|
|
|
+ <span class="funBtn">
|
|
|
+ <el-button type="" size="mini" icon="el-icon-plus" circle @click="addCompareRecord(reportData.searchRecord,index)"></el-button>
|
|
|
+ <el-button v-if="reportData.searchRecord.length>1" size="mini" type="danger" icon="el-icon-delete" circle @click="delCompareRecord(reportData.searchRecord,index)"></el-button>
|
|
|
+ </span>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="content_title">专利性分析</div>
|
|
|
+ <div>
|
|
|
+ <div class="patentContent">
|
|
|
+ <p>【本思路图及要点】</p>
|
|
|
+ <div>
|
|
|
+ <p>1、本思路图:</p>
|
|
|
+ <div class="content_input" style="display:flex;">
|
|
|
+ <div style="width:150px;height:180px;margin-right:10px" v-for="(item,index) in getColumnData('technicalCase','picture',dataObj.technicalCase.systemFileList?dataObj.technicalCase.systemFileList.map(pic=>{return {url:pic.guid}}) : [])" :key="index">
|
|
|
+ <div style="height:30px;line-height:30px;display:flex;justify-content:flex-end;">
|
|
|
+ <el-button type="text" size="small" @click="delImage(reportData.technicalCase.picture,item,index)">删除</el-button>
|
|
|
+ </div>
|
|
|
+ <div style="width:150px;height:148px;border:1px dashed #c0ccda;border-radius: 6px;">
|
|
|
+ <el-image style="width:100%;height:100%" :src="$commonJS.checkViewer(item.url)" :preview-src-list="reportData.technicalCase.picture.map(pic=>$commonJS.checkViewer(item.url))" fit="contain"></el-image>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-upload style="margin-right:10px;margin-top: 30px;" ref="upload" action="#" :auto-upload="false" multiple :on-change="(file, fileList)=>handleChange(reportData.technicalCase.picture,file, fileList)" list-type="picture-card" :show-file-list="false">
|
|
|
+ <span>
|
|
|
+ <i class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
+ </span>
|
|
|
+ </el-upload>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <p>2、本思路要点:</p>
|
|
|
+ <div class="text-indent" @click="edit('technicalCase','solvedProblem')">
|
|
|
+ <p>问题:</p>
|
|
|
+ <div class="content_input">
|
|
|
+ <div v-if="isEdit('technicalCase','solvedProblem')">
|
|
|
+ <myRichText editModel="clean" v-model="reportData.technicalCase.solvedProblem" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('technicalCase','solvedProblem',dataObj.technicalCase.solvedProblem)"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="text-indent" @click="edit('technicalCase','inventionPoint')">
|
|
|
+ <p>具体方案包括:</p>
|
|
|
+ <div class="content_input">
|
|
|
+ <div v-if="isEdit('technicalCase','inventionPoint')">
|
|
|
+ <myRichText editModel="clean" v-model="reportData.technicalCase.inventionPoint" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('technicalCase','inventionPoint',dataObj.technicalCase.inventionPoint)"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="patentContent" style="position: relative;" v-for="(item,index) in getCompareRecordData([
|
|
|
+
|
|
|
+ {
|
|
|
+ field:'patentMessage.rightHolder',
|
|
|
+ useFunction:(data)=>{
|
|
|
+ if(data.patentMessage && data.patentMessage.rightHolder && data.patentMessage.rightHolder.length>0){
|
|
|
+ return data.patentMessage.rightHolder.join('、')
|
|
|
+ }
|
|
|
+ return ''
|
|
|
+ },
|
|
|
+ type:'function',
|
|
|
+ key:'rightHolder'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field:'patentMessage.publicNo',
|
|
|
+ useFunction:(data)=>{
|
|
|
+ return data.patentMessage.grantNo || data.patentMessage.publicNo || ''
|
|
|
+ },
|
|
|
+ type:'function',
|
|
|
+ key:'publicNo'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field:'compareLiterature.technicalPoints',
|
|
|
+ type:'function',
|
|
|
+ useFunction:(data)=>{
|
|
|
+ var str = ''
|
|
|
+ var num = 1
|
|
|
+ if(data.noveltyCompareRecordVOS){
|
|
|
+ data.noveltyCompareRecordVOS.forEach((item,index) => {
|
|
|
+ str = `${str}${num}、${item.markNoteText}<br>`
|
|
|
+ num += 1
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(data.data && data.data.length>0){
|
|
|
+ data.data.forEach((item,index) => {
|
|
|
+ str = `${str}${num}、${item.markSelectField}“${item.markSelectText}”`
|
|
|
+ if(item.technicalFeature){
|
|
|
+ str = `${str}揭示了“${item.technicalFeature}”`
|
|
|
+ }
|
|
|
+ str = `${str}${item.markNoteText}<br>`
|
|
|
+ num += 1
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(data.compareLiterature && data.compareLiterature.technicalPoints){
|
|
|
+ str = `${str}<br>${data.compareLiterature.technicalPoints}`
|
|
|
+ }
|
|
|
+ return str
|
|
|
+ },
|
|
|
+ key:'technicalPoints'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field:'compareLiterature.excuteCase',
|
|
|
+ type:'string',
|
|
|
+ key:'excuteCase'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field:'compareLiterature.beneficialEffect',
|
|
|
+ type:'string',
|
|
|
+ key:'beneficialEffect'
|
|
|
+ }
|
|
|
+ ],['patentMessage'])" :key="index">
|
|
|
+ <div class="funBtn">
|
|
|
+ <el-button type="" icon="el-icon-plus" circle @click="addCompareRecord(reportData.compareRecord,index)"></el-button>
|
|
|
+ <el-button v-if="reportData.compareRecord.length>1" type="danger" icon="el-icon-delete" circle @click="delCompareRecord(reportData.compareRecord,index)"></el-button>
|
|
|
+ </div>
|
|
|
+ <p><span class="italic-text">【现有技术】</span></p>
|
|
|
+ <p class="center italic-text">现有技术{{index+1}}</p>
|
|
|
+ <p class="center italic-text">(
|
|
|
+ <span @click="edit('compareRecord','rightHolder',index)">
|
|
|
+ <span v-if="isEdit('compareRecord','rightHolder',index)">
|
|
|
+ <el-input v-model="item.rightHolder" :autofocus="true" class="input_border_none" style="width:150px;border:none" placeholder="请输入专利权人" @blur="()=>saveMessage(item.rightHolder)"></el-input>
|
|
|
+ </span>
|
|
|
+ <span v-else>{{item.rightHolder||'*专利权人*'}}</span>
|
|
|
+ </span>
|
|
|
+ ,
|
|
|
+ <span @click="edit('compareRecord','publicNo',index)">
|
|
|
+ <span v-if="isEdit('compareRecord','publicNo',index)">
|
|
|
+ <el-input v-model="item.publicNo" :autofocus="true" class="input_border_none" style="width:150px;border:none" placeholder="请输入公开公告号" @blur="()=>saveMessage(item.publicNo)"></el-input>
|
|
|
+ </span>
|
|
|
+ <span v-else>{{item.publicNo||'*公开公告号*'}}</span>
|
|
|
+ </span>
|
|
|
+ )</p>
|
|
|
+ <div @click="edit('compareRecord','technicalPoints',index)">
|
|
|
+ <p><strong>代表图示或影响本思路的现有技术要点(<span class="red-text">对影响专利性的部分进行显著标注,并将PDF档一并发送我方</span>)</strong></p>
|
|
|
+ <div class="content_input">
|
|
|
+ <div v-if="isEdit('compareRecord','technicalPoints',index)">
|
|
|
+ <myRichText editModel="clean" v-model="item.technicalPoints" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="item.technicalPoints"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div @click="edit('compareRecord','excuteCase',index)">
|
|
|
+ <p>实施方案包括:</p>
|
|
|
+ <div class="content_input">
|
|
|
+ <div v-if="isEdit('compareRecord','excuteCase',index)">
|
|
|
+ <myRichText editModel="clean" v-model="item.excuteCase" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="item.excuteCase"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div @click="edit('compareRecord','beneficialEffect',index)">
|
|
|
+ <p>有益效果:</p>
|
|
|
+ <div class="content_input">
|
|
|
+ <div v-if="isEdit('compareRecord','beneficialEffect',index)">
|
|
|
+ <myRichText editModel="clean" v-model="item.beneficialEffect" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="item.beneficialEffect"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="patentContent" @click="edit('baseMessage','analysisAndConclusion')">
|
|
|
+ <p><span class="italic-text">【分析与结论】(<span class="red-text">结合三步法,对上述标注部分重点说明</span>):</span></p>
|
|
|
+ <div class="content_input">
|
|
|
+ <div v-if="isEdit('baseMessage','analysisAndConclusion')">
|
|
|
+ <myRichText editModel="clean" v-model="reportData.baseMessage.analysisAndConclusion" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','analysisAndConclusion')"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <table>
|
|
|
+ <tr>
|
|
|
+ <td class="center width_150">建议</td>
|
|
|
+ <td>
|
|
|
+ <div v-html="getColumnData('baseMessage','applicationAdvice')"></div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>卡位方向(<span class="red-text">简单描述一下主权项</span>)</td>
|
|
|
+ <td @click="edit('baseMessage','detentDirection')">
|
|
|
+ <div v-if="isEdit('baseMessage','detentDirection')">
|
|
|
+ <myRichText editModel="clean" v-model="reportData.baseMessage.detentDirection" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','detentDirection')"></div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="center">备注</td>
|
|
|
+ <td @click="edit('baseMessage','remark')">
|
|
|
+ 检索所基于数据库的网站:
|
|
|
+ <div class="content_input">
|
|
|
+ <div v-if="isEdit('baseMessage','remark')">
|
|
|
+ <myRichText editModel="clean" v-model="reportData.baseMessage.remark" customStyle="border:none;padding:0" :autoFocus="true" @blur="saveMessage"></myRichText>
|
|
|
+ </div>
|
|
|
+ <div v-else v-html="getColumnData('baseMessage','remark')"></div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|